[C_ST41-中] 字串取代
問題描述:
輸入三字串 P, Q, R ,將字串 P 中所有出現字串 Q 的部分取代成字串 R 。
輸入說明:
1. 鍵盤輸入字串 P, Q, R
2. 字串為 ASCII Code 組成,且區分大小寫
輸出說明:
輸出字串 P 中的字串 Q 被字串 R 取代後的結果
範例:
輸入三字串 P, Q, R ,將字串 P 中所有出現字串 Q 的部分取代成字串 R 。
輸入說明:
1. 鍵盤輸入字串 P, Q, R
2. 字串為 ASCII Code 組成,且區分大小寫
輸出說明:
輸出字串 P 中的字串 Q 被字串 R 取代後的結果
範例:
Sample Input | Sample Output |
A boy picked a ball, and the ball was red. ball hat | A boy picked a hat, and the hat was red. |
Sprint and HTC launch the first 4G handset in America -- and its got Android onboard. HTC Smart Phone | Sprint and Smart Phone launch the first 4G handset in America -- and its got Android onboard. |
AAACCCCDDHHHI CCCC BB | AAABBDDHHHI |
- #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;
- }
沒有留言:
張貼留言