御笔剑客 发表于 2017-10-30 09:09:20

为什么下列代码不能对其输出呢?

#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;
}
逆序输出的数为什么跟原数据多一个空格呢?

BngThea 发表于 2017-10-30 09:17:14

因为字符串最后会自动添加'\0'
比如你输入了can
那么 word = {'c,'a','n','\0'}
此时i=3
你的for循环输出的第一个字符是word = '\0'

改一下for循环t条件即可
for(i -= 1; i >= 0; i--)

hacker.jin 发表于 2017-10-30 09:46:54

字符串有结束符,你吧字符串的最后一位忽略就好了
页: [1]
查看完整版本: 为什么下列代码不能对其输出呢?