问题链接: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] = ' '; if(len < minlen) strcpy(ans, a); break; } else { len = strlen(a); if(len < minlen) { minlen = len; strcpy(ans, a); } } } printf("%s ", ans); return 0; }