循环条件的作用是什么?

时间:2015-11-04 18:28:04

标签: c for-loop

这是一个将字母转换为大写字母的程序。

有人能解释一下下面程序中for循环的条件是什么吗?

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

int main()
{
    int i;
    char a[50];
    gets(a);

    for(i=0;a[i];i++)
      a[i]=toupper(a[i]);

    puts(a);
    return 0;
}

3 个答案:

答案 0 :(得分:2)

gets()将返回一个以0结尾的字符串,因为所有C字符串都应该是。因此,如果您输入了&#34;四&#34;,添加到a的实际内容将是那四个字母,后跟一个0字节。

 // as if you'd declared
 char a[] = { 'f', 'o', 'u', 'r', 0 };

循环测试每个角色,看它不是0。当a[i]0时,条件失败,循环结束。它只是循环遍历字符串中的所有实际字符。

答案 1 :(得分:1)

对于除终止空字符之外的所有字符,

a[i]计算结果为非零(true)。因此,当a[i]是终止空字符时,循环会中断。

答案 2 :(得分:0)

按照惯例,C中的字符串末尾有一个零字节,表示字符串的结尾。 for检查此字节并在到达时停止执行,因为字符串中的所有非零字节都计算为true。