第六章 函數-1406:單詞替換

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章