判断回文数的小程序代码问题

这是一个 “判断回文数” 的简单程序(如下),正在学习C语言的函数部分,所以这里定义了一个judge函数;
我的思路是先定义两个字符数组,一个用来储存原数组,一个用来储存反序数组,然后进行比较判断;
检验语法是没有什么问题(未报错),就是不知道哪里出问题了,然后导致一直无法正确判断回文数。试了好几个回文数“如12321”与“1 2 3 2 1”以及“cmc”与“c m c”,结果都是显示“不是回文数”,好像是并未进行理想判断。
谢谢回答[rose].

#include
#include

void judge(char cArray[100], char cArray1[100]);

int main()
{
char cArray[100], cArray1[100];
int iTemp=0;

puts("please enter a number");
gets(cArray);

judge(cArray,cArray1);

return 0;

}

void judge(char cArray[100],char cArray1[100])
{
int iNum, iTemp1;
iTemp1 = strlen(cArray);
for (iNum = 0; iNum <= iTemp1; iNum++)
{
cArray1[iTemp1 - iNum] = cArray[iNum];

}
if (cArray == cArray1)
    puts("是回文数");
else puts("不是回文数");

}

首先for (iNum = 0; iNum <= iTemp1; iNum++)有问题,不能<=,只能<
另外,cArray==cArray1完全是错误用法,这是判断两个数组首地址是否相同,显然是不可能相同的。
其实你只要对输入字符串的首尾字符逐个判断是否相同就行了,直至中间字符,如果都相同就是回文

#include <stdio.h>
#include <string.h>
int main()
{
    char s[1000];
    int i=0,j=0,len;
    scanf("%s",s);
    len = strlen(s);
    j = len-1;
    while(i<j)
    {
         if(s[i] != s[j])
            break;
          i++;
          j--;
    }
    if(i<j)
        printf("不是回文");
    else
        printf("是回文");
    return 0;

#include<stdio.h>
#include<string.h>

void judge(char cArray[100], char cArray1[100]);

int main()
{
    char cArray[100], cArray1[100];
    int iTemp=0;
    
    puts("please enter a number");
    gets(cArray);
     
    judge(cArray,cArray1);
     
    return 0;
}

void judge(char cArray[100],char cArray1[100])
{
    int iNum, iTemp1, j;
    iTemp1 = strlen(cArray);
    for (iNum = iTemp1 - 1, j=0; iNum >= 0, j < iTemp1; iNum--, j++)
    {
        cArray1[j] = cArray[iNum];
//        printf("%d %d", iNum, j);
    }
//    puts(cArray);
//    puts(cArray1);
    if(strcmp(cArray, cArray1) == 0)
        puts("是回文数");
    else puts("不是回文数");
}