为什么下列代码不能对其输出呢?
#include <stdio.h>#include <string.h>
#define WORD_SIZE 26
int main (void)
{
char word;
int i;
printf("Input a word:\n");
scanf("%s",word);
i = strlen(word);
for(;i >=0; i--)
printf("%c",word);
printf("\n");
system("pause");
return 0;
}
逆序输出的数为什么跟原数据多一个空格呢? 因为字符串最后会自动添加'\0'
比如你输入了can
那么 word = {'c,'a','n','\0'}
此时i=3
你的for循环输出的第一个字符是word = '\0'
改一下for循环t条件即可
for(i -= 1; i >= 0; i--) 字符串有结束符,你吧字符串的最后一位忽略就好了
页:
[1]