頻道欄目
首頁 > 資訊 > 其他 > 正文

UVA10815 Andy's First Dictionary

16-08-05        來源:[db:作者]  
收藏   我要投稿

問題鏈接:UVA10815 Andy's First Dictionary。

題意簡述:輸入一個文本文件,從中提取出字典,重復的單詞被去掉。

這個問題用C++語言編寫程序,主要是為了練習使用STL的功能。另外一點,C++編寫程序效率會更高。

使用STL容器類的set,可以方便地去重復,而且還會自動排序。

程序中,使用C語言的庫函數strtok()來切割單詞,并且用空格' '作為分隔符。這是一種簡便的做法。

另外一種切割字符串的方法是,使用STL的字符串流(sstream)實現。

AC的C++程序如下:

 

/* UVA10815 Andy's First Dictionary */

#include <iostream>
#include <cstring>
#include <set>

using namespace std;

#define MAXN 512

set<string> dict;

int main()
{
    char s[MAXN], delim[] = " ", *p;

    while(cin >> s) {
        p = s;
        while(*p) {
            if(isalpha(*p))
                *p = tolower(*p);
            else
                *p= ' ';
            p++;
        }

        p = strtok(s, delim);
        while(p) {
             dict.insert(p);
             p = strtok(NULL, delim);
        }
    }

    for(set<string>::iterator iter =dict.begin(); iter != dict.end(); iter++)
        cout << *iter << "\n";

    return 0;
}

 

相關TAG標簽
上一篇:臺積電:絕大多數7nm客戶都會轉向6nm_IT新聞_博客園
下一篇:最后一頁
相關文章
圖文推薦

關于我們 | 聯系我們 | 廣告服務 | 投資合作 | 版權申明 | 在線幫助 | 網站地圖 | 作品發布 | Vip技術培訓 | 舉報中心

版權所有: 紅黑聯盟--致力于做實用的IT技術學習網站

美女MM131爽爽爽毛片