关于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]的值为真,继续进行循环。
不懂 学习了一下
这个位置本来是应该写一个判断表达式,返回一个布尔类型(即true或false),但C语言中没有布尔类型,所以用0代表false,非0代表true 所以上面的代码,当s[i] == 0时,循环结束 顺带一说,'0'和'\0'的值都为0
问:挺简单的一C函数,不过我是初学者,暂时还不会写,请好心人多多帮忙!
答:int mystrlen(char *str) { int n = 0; while (*str) { n++; str++;} return n; } voi...详情>>