码迷,mamicode.com
首页 > 编程语言 > 详细

C语言100题集合-ex003

时间:2020-11-01 10:23:19      阅读:21      评论:0      收藏:0      [点我收藏+]

标签:代码   收藏   就是   string   题目   block   计算广告   组成   关注   

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

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

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

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

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

-- END --

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

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

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

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

C语言100题集合-ex003

标签:代码   收藏   就是   string   题目   block   计算广告   组成   关注   

原文地址:https://www.cnblogs.com/johngo/p/13907071.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!