CCF NOI1058 统计单词

问题链接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;
}



原文地址:https://www.cnblogs.com/tigerisland/p/7563864.html