• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            ivy-jie

            progress ...

            C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
              9 Posts :: 41 Stories :: 6 Comments :: 0 Trackbacks

            字符串替換
            題目描述:請編寫程序,根據(jù)指定的對應(yīng)關(guān)系,把一個文本中的字符串替換成另外的字符串。

            輸入數(shù)據(jù):程序讀入已被命名為text.txt和dict.txt的兩個輸入數(shù)據(jù)文本文件,text.txt為一個包含大量字符串(含中文)的文本,以whitespace為分隔符;dict.txt為表示字符串(s1)與字符串(s2)的對應(yīng)關(guān)系的另一個文本(含中文),大約在1萬行左右,每行兩個字符串(即s1和s2),用一個\t或空格分隔。dict.txt中各行的s1沒有排序,并有可能有重復(fù),這時以最后出現(xiàn)的那次s1所對應(yīng)的s2為準(zhǔn)。text.txt和dict.txt中的每個字符串都可能包含除whitespace之外的任何字符。text.txt中的字符串必須和dict.txt中的某s1完全匹配才能被替換。(為便于調(diào)試,您可下載測試text.txt和dict.txt文件,實際運行時我們會使用不同內(nèi)容的輸入文件。)

            輸出數(shù)據(jù):在標(biāo)準(zhǔn)輸出上打印text.txt被dict.txt替換后了的整個文本。

            評分標(biāo)準(zhǔn):程序輸出結(jié)果必須正確,內(nèi)存使用越少越好,程序的執(zhí)行時間越快越好。PS:c_str()返回一個它自己的使用內(nèi)存的地址(一個C-STYLE的string——)  
              會自動給最后添上一個'\0'結(jié)束符號  

            #include<iostream>

            #include<fstream>

            #include<string>

            #include<map>

            using namespace std;

            map<string,string>dic;

            int main()

            {

                   string s,a,b;

                   char c;

                   fstream file("dict.txt");

                   while (file>>a>>b)

                          dic[a]=b;

                   file.close();

                   freopen("text.txt","r",stdin);

                   while (scanf("%c",&c)+1)

                   {

                          if (c&128)

                          {

                                 s+=c;

                                 scanf("%c",&c);

                          }

                          if ((c&128)==0&&isspace(c))

                          {

                                 if (!s.empty())

                                        if (dic[s]!="")

                                               printf("%s",dic[s].c_str());

                                        else

                                               printf("%s",s.c_str());

                                 printf("%c",c);

                                 s="";

                          }

                          else

                                 s+=c;

                   }

                   if (!s.empty())

                          if (dic[s]!="")

                                 printf("%s",dic[s].c_str());

                          else

                                 printf("%s",s.c_str());

                   return 0;

            }

            posted on 2009-05-19 00:19 ivy-jie 閱讀(260) 評論(0)  編輯 收藏 引用 所屬分類: arithmetic
            伊人久久大香线蕉亚洲五月天 | 狠狠色丁香久久婷婷综合蜜芽五月| 亚洲中文精品久久久久久不卡| 日韩精品无码久久一区二区三| 青青草国产精品久久久久| 久久久久久亚洲精品成人| 久久久无码精品亚洲日韩按摩 | 国产A三级久久精品| 久久久SS麻豆欧美国产日韩| 久久久久亚洲av成人网人人软件 | 日韩欧美亚洲综合久久影院Ds| 国内精品久久久久久久涩爱 | 久久中文字幕人妻丝袜| 国内精品综合久久久40p| 亚洲国产精品无码久久久不卡| 精品久久久久久中文字幕大豆网| 伊人久久精品无码av一区| 国产Av激情久久无码天堂| 国产精品激情综合久久| 久久久久久av无码免费看大片| 天天做夜夜做久久做狠狠| 久久精品免费一区二区| 国内精品久久久久| 久久综合久久鬼色| 无码AV波多野结衣久久| 久久精品视频免费| 一级A毛片免费观看久久精品| 久久亚洲精品成人无码网站 | 久久久久久久女国产乱让韩| 久久久久久无码Av成人影院| 国产精品青草久久久久福利99| 无码AV中文字幕久久专区| 久久久久亚洲AV片无码下载蜜桃| 亚洲av日韩精品久久久久久a | 久久婷婷国产麻豆91天堂| 久久久久免费看成人影片| 久久96国产精品久久久| 色婷婷噜噜久久国产精品12p| 久久久久久精品久久久久| 国产成人精品综合久久久久| 久久久噜噜噜久久中文字幕色伊伊|