关于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]的值为真,继续进行循环。