vs字符串逆转,代码执行结果只能输出-1,不知道问题出在哪?

#include <stdio.h>

int main()
{
char c[20];
char d[20];
int i,len;
gets(c);
len = strlen(c);
for(i=0;i<len;i++)
{
d[len-1] = c[i];
len--;
}
int result = strcmp(c, d);

if (result < 0)

{

printf("%d\n",-1);

}

else if (result > 0)

{

printf("%d\n", 1);

}

else {

printf("%d\n", 0);

}
}

for(i=0;i<len;i++)
{
d[len-1] = c[i];
len--;
}
这里改成:

for(i=0;i<len;i++)
{
d[len-1-i] = c[i];
//len--;
}

char d[20] = {0};你嘚初始化数组值为0才行

#include <stdio.h>
int main()
{
char c[20];
char d[20] = {0};
int i,len;
gets(c);
len = strlen(c);
for(i=0;i<len;i++)
{
    d[len -i - 1] = c[i];
}
int result = strcmp(c, d);

if (result < 0)

{
printf("%d\n",-1);

}

else if (result > 0)

{
printf("%d\n", 1);

}

else {
printf("%d\n", 0);

}
}



我增加了一个变量tep,把len的值赋值给tep,解决的这个问题,谢谢大家