C语言中用两种简单算法统计一行文本的单词个数,并展示完整代码,思路讲解,优劣之处和流程图
时间: 2023-03-14 07:05:25 浏览: 116
算法一:基于字符串处理的算法思路:首先,将文本中的每个单词进行切割,然后遍历每个单词,累加单词个数。完整代码:#include<stdio.h>
#include<string.h>void count(char* str)
{
int i,num=0;
char* p;
p=strtok(str," ");
while(p!=NULL)
{
num++;
p=strtok(NULL," ");
}
printf("num=%d",num);
}int main()
{
char str[100]="This is a line of text.";
count(str);
return 0;
}优劣:优点:简单易懂,实现起来简单;缺点:对于文本中的标点符号无法处理,可能会造成错误的结果。流程图:算法二:基于正则表达式的算法思路:使用正则表达式匹配文本中的每个单词,累加单词个数。完整代码:#include<stdio.h>
#include<regex.h>int count(char* str)
{
int num=0;
regex_t reg;
regmatch_t pm[1];
regcomp(®,"[A-Za-z]+",REG_EXTENDED);
while(regexec(®,str,1,pm,0)==0)
{
num++;
str=str+pm[0].rm_eo;
}
printf("num=%d",num);
return 0;
}int main()
{
char str[100]="This is a line of text.";
count(str);
return 0;
}优劣:优点:比较灵活,可以处理文本中的标点符号;缺点:实现起来比较复杂,需要熟悉正则表达式的使用。流程图:
阅读全文