1498: 统计单词数
Memory Limit:2 MB
Time Limit:1.000 S
Judge Style:Text Compare
Creator:
Submit:156
Solved:67
Description
不允许普通用户打印题目,请教师登录后使用。如有疑问请联系管理员!
Input
1个字符以上的任意长度英文文本(可能包含大小写字母、空格、数字、标点符号)。注意,文本可能会很长,很长,很长。输入中单词的个数可能达到4294967296(即2的32次方)个。
Output
单词的个数。
Sample Input Copy
It is a cat,
I like it.
Sample Output Copy
7
HINT
注意:
1:应该注意考虑特殊情况:例如文章开始处有若干空格或者回车的情形。
2:当以如下的方式使用字符数组输入字符串数据时:
char str[此处为足够大的数组元素个数];
scanf("%s",str);
当输入字符串中包含空格、回车或者跳格字符时,空格、回车和跳格将被认为是2个字符串之间的分隔,因此用这种方法输入的字符串中不可能包含空格、回车和跳格字符的。
3:当需要以行为单位,输入一行一行的字符串,那么可利用gets(str)来输入一行字符串是,输入到字符串变量中的字符可包含空格和跳格字符,但是不能包含回车字符。对于没有给定数据长度的情况,可以利用gets( )函数的返回值为为空(它输入数据已经输入完毕)来判断输入是否结束。例如,如下形式。
char str[足够大的元素个数];
while (gets(str)!=NULL)
{
//每循环一次,处理每一行字符串
}
4:如果需要单个字符处理,则必须使用scanf("%c",&c);或者 ch=getchar();此时,不管任何字符都可以输入到字符变量中包括空格、回车和跳格字符。
while(scanf("%c",&ch)
{
//每循环一次,处理一个字符
}
1:应该注意考虑特殊情况:例如文章开始处有若干空格或者回车的情形。
2:当以如下的方式使用字符数组输入字符串数据时:
char str[此处为足够大的数组元素个数];
scanf("%s",str);
当输入字符串中包含空格、回车或者跳格字符时,空格、回车和跳格将被认为是2个字符串之间的分隔,因此用这种方法输入的字符串中不可能包含空格、回车和跳格字符的。
3:当需要以行为单位,输入一行一行的字符串,那么可利用gets(str)来输入一行字符串是,输入到字符串变量中的字符可包含空格和跳格字符,但是不能包含回车字符。对于没有给定数据长度的情况,可以利用gets( )函数的返回值为为空(它输入数据已经输入完毕)来判断输入是否结束。例如,如下形式。
char str[足够大的元素个数];
while (gets(str)!=NULL)
{
//每循环一次,处理每一行字符串
}
4:如果需要单个字符处理,则必须使用scanf("%c",&c);或者 ch=getchar();此时,不管任何字符都可以输入到字符变量中包括空格、回车和跳格字符。
while(scanf("%c",&ch)
{
//每循环一次,处理一个字符
}