一.题目描述
统计一行字符串的单词个数, 单词用非字母分割.
例如"ab235adg 456ad"被认为是3个单词.
二.思路分析
本题的主要难点在于如何判断有一个单词呢,当然遍历字符串是必须的。下面给出两种不同的思路:
一.当前是字母,下一个是非字母
二.当前是非字母,下一个是字母
我们需要注意的是:边界问题。第二种情况把第一个单词漏掉,比如例子中的ab235adg 456ad,按照第二种思路只能数出2种。所以我们采用第一种方法。
三.完整代码
#define _CRT_SECURE_NO_WARNINGS//这一句必须放在第一行
#include <stdio.h>
#include<ctype.h>
int Count(const char* str)
{
int count = 0;//计数器
for (int i = 0;str[i] != '\0';i++)
{
if (isalpha(str[i]) && !isalpha(str[i + 1]))
{
count++;
}
}
return count;
}
int main()
{
printf("%d", Count("abcd abc ab"));
return 0;
}
四.运行结果
创作不易, 如果这份博客👍对你有帮助,可以给博主一个免费的点赞以示鼓励。
欢迎各位帅哥美女点赞👍评论⭐收藏,谢谢!!!
如果有什么疑问或不同的见解,欢迎在评论区留言哦👀。
祝各位生活愉快⭐