zoukankan      html  css  js  c++  java
  • 空白字符读取和处理

    蒜头君最近在上翻译专题课,教授丢给了他一本字典和一本蒜厂秘籍原稿。

    字典包括蒜厂秘籍文字,和对应的英文解释。

    蒜头君需要把蒜厂秘籍原稿翻译成英文稿,达成翻译家伟业。

    输入格式

    字典部分以START开始,以END结束。

    中间部分每行两个单词,第一个是英文,第二个是蒜厂秘籍文字,以单个空格隔开。

    接下来是历史书部分,同样以START开始,以END结束。

    历史书包含若干行文本,如果其中的单词(由连续的英文字母组成)在字典上出现过,且是蒜厂秘籍文字,则把它替换成英文;否则,保留该单词,也保留所有非英文字母的特殊符号。文本长度不超过 1000010000。

    输出格式

    原稿翻译后的文本。

    样例输入

    START
    love abc
    you dddd
    END
    START
    i abc dddd!
    END

    样例输出

    i love you!


    这道题复杂的地方在于:读取空白字符:空格、制表符等等,而且输出。
    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        map<string,string> a;
        string s;
        cin>>s;
        while(s!="END")
        {
            cin>>s;
            string val;
            cin>>val;
            a[val]=s;
        }
        getchar();
        char b[10005];
        while(gets(b))
        {
            if(strcmp(b,"END")==0) break;
            string tmp;
            for(int i=0;i<strlen(b);i++)
            {
                if(('a'<=b[i]&&'z'>=b[i])||('A'<=b[i]&&b[i]<='Z'))
                {
                    tmp+=b[i];
                }
                else
                {
                    if(a.count(tmp)) cout<<a[tmp];
                    else cout<<tmp;
                    cout<<b[i];
                    tmp="";
                }
            }
            if(tmp!="")
            {
                if(a.count(tmp)) cout<<a[tmp];
                else cout<<tmp;
            }
            cout<<endl;
        }
    
        return 0;
    }
     
  • 相关阅读:
    链接<a href="javascript:void(0)" />
    JS 不定函数参数argument的用法
    java编译期常量
    对于代码设计的思考
    java交集retainAll 和 Sets.intersection 性能比较
    java 递归调整为队列
    前端跨域问题springboot
    guava的map中value转换问题和排序问题
    MAC安装 Office2016
    股市中的资金流入流出
  • 原文地址:https://www.cnblogs.com/superxuezhazha/p/6393934.html
Copyright © 2011-2022 走看看