hihocoder:#1082 : 然而沼躍魚早就看穿了一切(用string)
阿新 • • 發佈:2018-11-09
題目是這樣的:
描述
fjxmlhx每天都在被沼躍魚刷屏,因此他急切的找到了你希望你寫一個程式遮蔽所有句子中的沼躍魚(“marshtomp”,不區分大小寫)。為了使句子不缺少成分,統一換成 “fjxmlhx” 。
輸入
輸入包括多行。
每行是一個字串,長度不超過200。
一行的末尾與下一行的開頭沒有關係。
輸出
輸出包含多行,為輸入按照描述中變換的結果。
樣例輸入The Marshtomp has seen it all before. marshTomp is beaten by fjxmlhx! AmarshtompB樣例輸出
The fjxmlhx has seen it all before. fjxmlhx is beaten by fjxmlhx! AfjxmlhxB
這裡工作應該是很明確的,查詢和替換,string類提供了很方便的函式去查詢和替換,由於大小寫的不同可以先用複製一個副本,然後統一大小寫,然後查詢再替換。
程式碼如下:
#include<cstdio> #include<string> #include<iostream> #include<cctype> using namespace std; int main() { string a,b="marshtomp"; while(getline(cin,a)){ string a1=a; for(int i=0;i<a.size();i++) a[i]=tolower(a[i]); int x; while((x=a.find(b))>=0){ //這裡因為一行可能不止一個,所以用迴圈,剛開始就因為這個WA了可久 a1.replace(x,9,"fjxmlhx"); a.replace(x,9,"fjxmlhx"); } cout<<a1<<endl; } return 0; }