系列文章《C语言经典100例》持续创作中,欢迎大家的关注和支持。
喜欢的同学记得点赞收藏哦~
1 题目
函数:fun()
功能:统计一行字符串单词的个数,作为函数值返回
描述:一行字符串在主函数中输入,规定所有单词都是由小写字母组成,单词之间由若干空格隔开,一行的开始没有空格

C语言100题集合-ex003
2 思路
逐个字符进行判断是否为空
下面“空开处”指的是一个空格或者若干空格隔开单词的说法
- 开头无空格,故需要判断结尾有没有空开出,如果有,直接计算空开出就是单词数,如果没有需要单词数加1
- 上述1中的空开出需要做处理,由于单词间由若干空格隔开,故判断一个空格的前一个是否为空格,如果不是,数量加1;如果是,不做处理
3 代码
#include #include#define M 3 #define N 4 /**编写函数fun()函数功能:统计一行字符串单词的个数,作为函数值返回 一行字符串在主函数中输入,规定所有单词都是由小写字母组成,单词之间由若干空格隔开,一行的开始没有空格**/int fun(char *s) { int cnt = 0; // 单词个数 int i = 0; while(*(s+i)!='0') { if (*(s+i) == ' ' && *(s+i-1) != ' ') { cnt += 1; } ++i; } if (*(s+i-1) != ' '){ // 如果单词结尾没有空格,则单词数需要空开数+1 return cnt + 1; } return cnt;}int main(int argc, char const *argv[]) { char s[] = "hello world i am c language"; printf("字符串内容:%s", s); printf("单词个数为:%d", fun(s));}
示例结果:
$ gcc ex003.c -o demo$ ./demo字符串内容:hello world i am c language单词个数为:6
--END--
喜欢本文的同学记得转发+点赞~
更多内容,欢迎大家关注我们的公众号:计算广告生态
带来更多系列文章以及干货!