- 关于C语言中:统计字符串中数字出现的个数的题这个题目中设置了这样
- 这个题目中设置了这样的一个循环:
void fun (char s[])
{int i,cut=0;
for (i=0;s[i];i++)下面的语句没有写,请问:
为什么这个循环中s[i]为什么不是大于什么或小于什么,为什么要s[i]这么写呢?
- 题目的完整程序如下:
int fun (char s[])
{int i,cut=0;
for (i=0;s[i];i++)
if(s[i]>='0'&&s[i]<='9')
cut++;
return cut;
}
至于循环中为什么只写了s[i]这个问题,循环结束的条件应该是字符串的结束,而c语言中字符串的结束符用‘\0’表示,而‘\0’的ASCII码值为0,并且在c语言中的非零表示真,零表示假。所以若s[i]是字符串结束符时,s[i]的值为0,即为假,所以退出循环。否则,s[i]的值为真,继续进行循环。