c语言:统计一段话中单词的个数

大前提:单词用若干空格隔开
小前提:我写的全都是小写字母组成的语句。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<string.h>
#define size 50
int fun(char s[])
{
	int i = 0, num = 0;
	while (i < size)
	{
		if (s[i] != '\0')
		{
			if ((65 <= s[i] && s[i] <= 90) || (97 <= s[i] && s[i] <= 122))
			{
				while ((65 <= s[i] && s[i] <= 90) || (97 <= s[i] && s[i] <= 122))
					i++;
				num += 1;
				while (s[i] == ' ')
					i++;
			}
		}
		if (s[i] == '\0')
			break;
		i++;
	}
	return num;
}
int main()
{
	char s1[size];
	gets(s1);
	printf("一共有%d个单词", fun(s1));
	return 0;
}

在这里插入图片描述

**if (s[i] != ‘\0’)**是为了防止数组越界访问。

**if ((65 <= s[i] && s[i] <= 90) || (97 <= s[i] && s[i] <= 122))**是为了跳过其它类型的字符干扰,让其它字符的遍历通过在这里插入图片描述这里的i来跳过。

在这里插入图片描述
这个是为了遍历字母。

在这里插入图片描述
这个是为了遍历空格。

posted @ 2021-06-14 02:22  zbossz  阅读(209)  评论(0)    收藏  举报