题目
&가 입력될 때까지 여러 줄의 영문 문자열을 입력 받고, 찾는 문자열과 대치할 문자열을 각각 입력 받아 문자열을 변경하라.
解题思路
1.输入字符串
2.用find函数找出要更改的字符串
3.用replace函数替换要改变的函数
4.重新显示句子。
#include <iostream>
#include <string>
using namespace std;
int main(int argc, const char * argv[]) {
string s;
cout << "输入字符串。结束的时候输入&" << endl;
getline(cin,s,'&');//输入字符串到&为止
cin.ignore();//除去'&'后面《enter》的字符串
string f,r;
cout << endl << "find: ";
getline(cin, f, '\n');//检查的字符串输入
cout << "replace: ";
getline(cin,r,'\n');//兑换的字符串输入
int startIndex =0;
while (true) {
int fIndex = s.find(f,startIndex);//在starIndex的字符串里面找 f
if(fIndex == -1)break;
//字符串到s为止改变
s.replace(fIndex, f.length(), r);//找到的第一个位置fIndex到f的长度为止,更换r
startIndex = fIndex + r.length();//原本的长度加上换字符的长度
}
cout << s << endl;
}