2016-07-22 110 views
1
#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h> 
#define SIZE 19 

int main() 
{ 
    char name[SIZE]; 
    int x; 
    int i; 

    printf("Enter your name: "); 

    scanf("%s", &name); 

    for (i = 1; name[i] != '\0'; i++); 
     printf("Are you sure your name is: "); 

    for (x = i - 1; x >= 0; x--) 
     printf("%c", name[x]); 
} 

在线9为什么我们需要在For语句后有一个分号?如果没有分号,程序将打印出“你确定你的名字是:你确定你的名字是:”。C - For循环语句后的分号

编辑:人们不喜欢重复的问题,所以我在这里使它不同 - 你觉得是问题,为什么没有工作???? [解决]

+0

都能跟得上。这是一个错误。 – evaitl

+0

不清楚你期望的是什么。但是,在for之后不需要分号。通过删除分号,您打印您的消息两次,因为NULL字符在您的数组的第三个元素(在您描述的情况下)。你想完成什么? –

+2

这不是一个错误。它用于计算“i”中的字符串长度。 –

回答

3

线

for (i = 1; name[i] != '\0'; i++); 

是循环,直到name[i]是一个空终止。此时计数器i将具有串name,其在接下来的代码行中使用的长度。 与代码的唯一问题是下一行,这是在误导认为这是循环的一部分的压痕。

+0

“的代码唯一的问题是下一行缩进” - 嗯,那我们没有理由不使用strlen(事实),让这整个事情很多更清晰... – nephtes

+0

@nephtes这当然。但我会留下它进行代码审查。 –

+0

是啊,在循环之后打印语句不应该是这样的......哈哈。感谢尤金! – flamed65