统计一行字符串单词的个数,作为函数值返回

114 阅读1分钟

1 题目

函数:fun()

功能:统计一行字符串单词的个数,作为函数值返回

一行字符串在主函数中输入,规定所有单词都是由小写字母组成,单词之间由若干空格隔开,一行的开始没有空格

2 思路

逐个字符进行判断是否为空

下面“空开处”指的是一个空格或者若干空格隔开单词的说法

  1. 开头无空格,故需要判断结尾有没有空开出,如果有,直接计算空开出就是单词数,如果没有需要单词数加1
  2. 上述1中的空开出需要做处理,由于单词间由若干空格隔开,故判断一个空格的前一个是否为空格,如果不是,数量加1;如果是,不做处理

3 代码

#include<stdio.h> 
#include<string.h>
#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\n", s);
printf("单词个数为:%d\n"fun(s));
}

示例结果:

$ gcc ex003.c -o demo
$ ./demo
字符串内容:hello world     i am c language
单词个数为:6


\