爱问知识人 爱问教育 医院库

关于C语言中:统计字符串中数字出现的个数的题

首页

关于C语言中:统计字符串中数字出现的个数的题

这个题目中设置了这样的一个循环:
void fun (char s[])
{int i,cut=0;
for (i=0;s[i];i++)下面的语句没有写,请问:
 为什么这个循环中s[i]为什么不是大于什么或小于什么,为什么要s[i]这么写呢?

提交回答
好评回答
  • 2007-12-18 19:55:55
    题目的完整程序如下:
    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]的值为真,继续进行循环。

    梦***

    2007-12-18 19:55:55

其他答案

    2007-12-19 14:47:33
  • 不懂  学习了一下

    守***

    2007-12-19 14:47:33

  • 2007-12-17 19:16:13
  • 这个位置本来是应该写一个判断表达式,返回一个布尔类型(即true或false),但C语言中没有布尔类型,所以用0代表false,非0代表true
    所以上面的代码,当s[i] == 0时,循环结束
    顺带一说,'0'和'\0'的值都为0

    K***

    2007-12-17 19:16:13

类似问题

换一换
  • C/C++ 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 176-195
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):