首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言经典100例003-统计一行字符串单词的个数,作为函数值返回

C语言经典100例003-统计一行字符串单词的个数,作为函数值返回

原创
作者头像
Python编程爱好者
修改2020-11-06 14:27:56
2K0
修改2020-11-06 14:27:56
举报

系列文章《C语言经典100例》持续创作中,欢迎大家的关注和支持。

喜欢的同学记得点赞、转发、收藏哦~

后续C语言经典100例将会以pdf和代码的形式发放到公众号

欢迎关注:计算广告生态 即时查收

1 题目

编写函数fun() 函数功能:统计一行字符串单词的个数,作为函数值返回一行字符串在主函数中输入,规定所有单词都是由小写字母组成,单词之间由若干空格隔开,一行的开始没有空格

image.png
image.png

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

-- END --

喜欢本文的同学记得点赞、转发、收藏~

更多内容,欢迎大家关注我们的公众号:计算广告生态

后续C语言经典100例将会以pdf和代码的形式发放到公众号

同时也带来更多系列文章以及干货!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 题目
  • 2 思路
  • 3 代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档