《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'覆盖。
展示