1406:單詞替換
時間限制: 1000 ms 內存限制: 65536 KB
提交數: 6051 通過數: 3567
【題目描述】
輸入一個字符串,以回車結束(字符串長度≤200)。該字符串由若干個單詞組成,單詞之間用一個空格隔開,所有單詞區分大小寫。現需要將其中的某個單詞替換成另一個單詞,並輸出替換之後的字符串。
【輸入】
第1行是包含多個單詞的字符串 s;
第2行是待替換的單詞a(長度 ≤ 100);
第3行是a將被替換的單詞b(長度 ≤ 100)。
s,a,b最前面和最後面都沒有空格。
【輸出】
輸出只有 1 行,將s中所有單詞a替換成b之後的字符串。
【輸入樣例】
You want someone to help you
You
I
【輸出樣例】
I want someone to help you
思路:先定義替換函數,如果該單詞與待替換單詞相同則替換, 否則直接輸出該單詞 ,輸入代替換的單詞與要替換的單詞,/逐個判斷是否要替換,//調用函數進行判斷,是否需要替換.
#include<iostream>
#include<string>
#include<cstring>
#include<cstdio>
using namespace std;
string str[101],a,b;
void replace(int i)
{
if(a == str[i])
cout << b <<" ";//該單詞與待替換單詞相同則替換
else
cout << str[i] <<" ";//直接輸出該單詞
}
int main()
{
int n = 0;
int i;
char space;
//由於至少需要輸入一個單詞,使用do-while結構輸入
do
{
n++;
cin >> str[n];//輸入一個單詞(字符組)
scanf("%c",&space);//讀入一個空格
} while(space == ' ');
cin >> a >> b;//輸入代替換的單詞與要替換的單詞
for(i = 1; i <= n; i++) //逐個判斷是否要替換
replace(i);//調用函數進行判斷,是否需要替換
cout << endl;
return 0;
}