[C_ST30-中] 尋找並取代字
問題描述 :
給予三個英文字串,由英文大小寫字母構成,其中都可能有空白。 第一個字串是目的字串,接著的運作都是針對此字串。 第二個字串是要在第一個字串中尋找並刪除的字串, 第三個字串是要用來取代第二個字串。 結果為第一個字串中刪除了所有第二個字串並用第三個字串取代。
輸入說明 :
輸入有三列長度在128個字元內的字串,第一列為第一個目的字串, 第二列為要尋找的字串,第三列為取代第二個字串的字串。
輸出說明 :
經尋找並取代後的第一個目的字串。
範例 :
給予三個英文字串,由英文大小寫字母構成,其中都可能有空白。 第一個字串是目的字串,接著的運作都是針對此字串。 第二個字串是要在第一個字串中尋找並刪除的字串, 第三個字串是要用來取代第二個字串。 結果為第一個字串中刪除了所有第二個字串並用第三個字串取代。
輸入說明 :
輸入有三列長度在128個字元內的字串,第一列為第一個目的字串, 第二列為要尋找的字串,第三列為取代第二個字串的字串。
輸出說明 :
經尋找並取代後的第一個目的字串。
範例 :
Sample Input: | Sample Output: |
a quick brown fox jump over the fence fox wolf | a quick brown wolf jump over the fence |
- #include <iostream>
- #include<iomanip>
- #include<string>
- using namespace std;
- int main() {
- // [C_ST41-中] 字串取代
- string P, Q, R;
- //將字串P中所有出現字串Q的部分取代成字串R
- getline(cin, P);
- getline(cin, Q);
- getline(cin, R);
- int fpos = 0;
- while(1)
- {
- fpos = P.find(Q, fpos); //在P字串中尋找子字串Q
- if(fpos != string::npos)
- {
- P.replace(fpos, Q.size(), R); //取代
- fpos = fpos + Q.size();
- }
- else //如果找不到就跳出迴圈
- {
- break;
- }
- }
- cout << P << endl;
- return 0;
- }
沒有留言:
張貼留言