编写一个程序,对标准输入进行扫描,并对单词“the”出现的次数进行计数。进行比较时应该区分大小写,所以“The”和“THE”并不计算在内。你可以认为各单词由一个或多个空格字符分隔,而且输入行在长度上不会超过100个字符。 计数结果应该写到标准输出上。
声明—个长度为101个字节的缓冲区数组,用于保存100个字节的输入和NUL终止符。strtok 函数用于逐个提取单词。
// 计算标准输入中单词“the”出现的次数。字母是区分大小写的,输入中的单词由一个或多次空白字符分隔。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char const whitespace[] = " \n\r\f\t\v";
int main ()
{
char buffer[101];
int count;
char *word;
count = 0;
// 读入文本行,直到发现EOF
while( gets(buffer) ) {
// 从缓冲区逐个提取单词,直到缓冲区内不再有单词。
for( word = strtok ( buffer, whitespace );
word != NULL;
word = strtok( NULL, whitespace )
){
if( strcmp( word, "the" ) == 0 )
count += 1;
}
}
printf("%d\n", count);
return EXIT_SUCCESS;
}