《C和指针》 练习题9.14

 

问题

编写一个程序,对标准输入进行扫描,并对单词“the”出现的次数进行计数。进行比较时应该区分大小写,所以“The”和“THE”并不计算在内。你可以认为各单词由一个或多个空格字符分隔,而且输入行在长度上不会超过100个字符。计数结果应该写到标准输出上。

 

思路

程序从标准输入中读入一串字符,然后使用库函数stoken对句子进行分词处理,遍历每一个单词并统计"the"出现的次数,最后打印输出。

输入:用户输入一串英文

处理:对句子进行分词处理,统计关键词出现的次数

输出:打印统计的结果

 

代码

#include <stdio.h>
#include <string.h>


#define N 100

void scan_key( char *line, char const *key );

void main(void)
{
	char string[N] = {0};	

	printf("please input >>");
	scanf("%s",string);

	scan_key( string, "the" );
}

void scan_key( char *line, char const *key )
{
	char *token = NULL;
	unsigned int count = 0;
	
	for( token = strtok( line, " " ); token != NULL; token = strtok( NULL, " " ) )
	{//分词统计 ; 空格是分隔符
		if( 0 == strcmp( token, key ) ) count++;
	}
	printf("sum:%d\n",count);

}

PS:stoken函数将字符串分割成多个单独的部分,按照指定的标记(分隔符)进行分割。每次分割后,标记符用'NUL'覆盖。

 

展示

【C语言练习题】分词统计_笔记