1. 程式人生 > >hihocoder:#1082 : 然而沼躍魚早就看穿了一切(用string)

hihocoder:#1082 : 然而沼躍魚早就看穿了一切(用string)

題目是這樣的:

描述


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;
}