1. 程式人生 > >演算法筆記 — 單詞替換

演算法筆記 — 單詞替換

 

題目連結:http://www.codeup.cn/problem.php?cid=100000580&pid=3

題目描述

輸入一個字串,以回車結束(字串長度<=100)。該字串由若干個單片語成,單詞之間用一個空格隔開,所有單詞區分大小寫。現需要將其中的某個單詞替換成另一個單詞,並輸出替換之後的字串。

輸入

多組資料。每組資料輸入包括3行,

第1行是包含多個單詞的字串 s,

第2行是待替換的單詞a,(長度<=100)

第3行是a將被替換的單詞b。(長度<=100)

s, a, b 最前面和最後面都沒有空格。

輸出

每個測試資料輸出只有 1 行,

將s中所有單詞a替換成b之後的字串。

樣例輸入

I love Tian Qin
I
You

樣例輸出

You love Tian Qin

注意是單詞與單詞的替換!!!

#include<iostream>
#include<string>
#include<cstring>
using namespace std;
char a[111],b[111],c[111];
int main(){
    while(gets(a)){
        string s[111]={};//不能定義為全域性變數
        int len=strlen(a);
        gets(b);
        gets(c);
        int cnt=1;
        for(int i=0;i<len;i++){
            if(a[i]!=' '){
                s[cnt]+=a[i];
            }else{
                cnt++;
            }
        } 
        for(int i=1;i<cnt;i++){
            if(s[i]==b){
                cout<<c<<' ';
            }else{
                cout<<s[i]<<' ';
            }
        }
        if(s[cnt]==b){
            cout<<c<<endl;
        }else{
            cout<<s[cnt]<<endl;
        }
    }
    return 0;
}