描述
你旅遊到了乙個國外的城市。那裡的人們說的外國語言你不能理解。不過幸運的是,你有一本詞典可以幫助你。
輸入首先輸入乙個詞典,詞典中包含不超過100000個詞條,每個詞條佔據一行。每乙個詞條包括乙個英文單詞和乙個外語單詞,兩個單詞之間用乙個空格隔開。而且在詞典中不會有某個外語單詞出現超過兩次。詞典之後是乙個空行,然後給出乙個由外語單詞組成的文件,文件不超過100000行,而且每行只包括乙個外語單詞。輸入**現單詞只包括小寫字母,而且長度不會超過10。
輸出在輸出中,你需要把輸入文件翻譯成英文,每行輸出乙個英文單詞。如果某個外語單詞不在詞典中,就把這個單詞翻譯成「eh」。
樣例輸入
dog ogday
cat atcay
pig igpay
froot ootfray
loops oopslay
atcay
ittenkay
oopslay
樣例輸出
cat
ehloops
分析:
這個題是用乙個詞來查詢另乙個詞,所以可以用map來儲存單詞。
這個題有兩個任意的輸入所以第一組單詞可以用getline來進行輸入,如果getline的輸入為空,那麼停止輸入。getline每次會輸入一行,在輸入之後還要再將輸入的兩個單詞拆分然後存到map中。
將輸入的兩個單詞進行拆分可以用stringstream來完成,stringstream在標頭檔案中。
stringstream ss
(s)//定義ss並將字串s放入ss中
sin>>a>>b;
//將ss中的兩個單詞分別輸入字串a和b中
有了stringstream就可以很方便的輸入到s中的兩個單詞進行拆分了。
實現**:
#include
#include
#include
#include
#include
using
namespace std;
string s,a,b;
mapm;
intmain()
while
(cin>>s)
return0;
}
stringstream操縱string小總結
1 split字串 之前在用c 寫 的時候,用過split函式,可以把乙個字串根據某個分隔符分成若干個字串陣列。在用c 操縱字串的時候,我一直使用很笨的遍歷的方法。為此,我問候過很多次c 標準委員會。直到某一天,我做了乙個處理絕對路徑的題目。首先,我要把 作為分隔符,把輸入字串split一下。下面是...
stringstream常見用法
sstream定義了三個類 istringstream ostringstream 和 stringstream,分別用來進行流的輸入 輸出和輸入輸出操作。為什麼要用stringstream?因為用sprintf 函式將乙個變數從int型別轉換到字串型別。為了正確地完成這個任務,你必須確保證目標緩衝...
stringstream 型別轉換
stringstream可以吞下不同的型別,然後吐出不同的型別。這樣可以實現int,string,double等型別的轉換 1 include2 3using namespace std 45 intmain 612 缺點 效率低,執行時間長 由於cin,cout為了相容c有個同步流。關閉同步流的方...