zoukankan      html  css  js  c++  java
  • 【UVA

    题目:

    Input

    测试数据将输入一篇文章。不超过5000行,每一行最多200个字符,并以EOF结束。

    Output

    按照字典序输出他学到的单词,每行输出一个单词,输出单词时所有的字母全部小写。 
    数据保证最多有5000个需要输出的单词。

    Sample Input

    Adventures in Disneyland

    Two blondes were going to Disneyland when they came to a fork in the road. The sign read: "Disneyland Left."

    So they went home.

    Sample Output

    a

    adventures

    blondes

    came

    disneyland

    fork

    going

    home

    in

    left

    read

    road

    sign

    so

    the

    they

    to

    two

    went

    were

    when

    代码:

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <string>
    #include <cctype>
    #include <set>
    #include <sstream>
    using namespace std;
    string b;
    set<string> dict;
    //直接用set避免重复,大小写是同一个单词,那么就预处理,都变成小写
    //有可能单词不以空格分隔,所以非字母都是分隔符;
    //有两种做法,一种把特殊字符变成空格,然后重新构造输入流
    //第二种是手动分隔
    
    //1.手动
    int main(){
        int c=0,flg=0,start=0,end=0,i;
        // while (cin>>b)
        // {
        //     b=b+"*";//预处理
        //     //下一个字符的开始添加上一个单词
        //     for(i=0;i<b.length();i++)
        //         if(isalpha(b[i])) break;
        //     start=i-1;
        //     for(;i<b.length();i++){
        //         if(isalpha(b[i])){
        //             end=i;
        //             b[i]=tolower(b[i]);
        //             flg=0;
        //         }
        //         else{
        //             if(!flg){
        //                 flg=1;
        //                 dict.insert(b.substr(start+1,end-start));//注意substr 是 offset,长度
        //             }
        //             start=i;
        //         }
        //     }
        // }
    
        //2.使用字符串流
        while (cin>>b)
        {
            for(int i=0;i<b.length();i++)
                if(isalpha(b[i]))
                    b[i]=tolower(b[i]);
                else b[i]=' ';
            stringstream stream(b);//构造字符串流来输入,以空格为分割
            string buf;
            while (stream>>buf)
                dict.insert(buf);
        }
        for(set<string>::iterator i=dict.begin();i!=dict.end();i++)
            cout<<*i<<endl;
        return 0;
    }
  • 相关阅读:
    大文件断点续传webupload插件
    大文件断点续传插件webupload插件
    大文件上传插件webupload插件
    局域网大附件上传,支持断点续传
    网页大附件上传,支持断点续传
    B/S大附件上传,支持断点续传
    jsp大附件上传,支持断点续传
    php大附件上传,支持断点续传
    windows7 配置 python开发环境
    TMS320F28335项目开发记录6_28335之cmd文件具体解释
  • 原文地址:https://www.cnblogs.com/MorrowWind/p/UVA-10815-Andys-First-Dictionary.html
Copyright © 2011-2022 走看看