问题链接:CCF NOI1058 统计单词。
时间限制: 1000 ms 空间限制: 262144 KB
题目描述
输入一段由若干个以空格分隔的单词组成的英文文章,求出文章中最短的单词(文章以英文句点“.”结束,且字符总数不超过200)。
输入
输入文章。
输出
输出最早的最短的单词。样例输入
We are Oiers.
样例输出
We
数据范围限制
提示
问题分析
这是一个对文章进行单词切分的问题,关键在于如何切分。剩下的就是比较单词长短问题。
程序说明
C语言程序中,使用函数scanf()和格式“%s”读入字符串就自然地切分文章为单词。
最后一个单词的后面会带有“.”,需要注意,要特别处理。
要点详解
- 使用宏定义可以使得代码可阅读性增强。
- 有关字符串函数的使用需要烂熟于心。
参考链接:(略)。
100分通过的C语言程序:
#include <stdio.h>
#include <string.h>
#define N 200
char a[N+1], ans[N+1];
int main(void)
{
int minlen, len;
minlen = N;
for(;;) {
scanf("%s", a);
len = strlen(a);
if(a[len - 1] == '.') {
a[--len] = '\0';
if(len < minlen)
strcpy(ans, a);
break;
} else {
len = strlen(a);
if(len < minlen) {
minlen = len;
strcpy(ans, a);
}
}
}
printf("%s\n", ans);
return 0;
}