原题题目
代码实现
#include<iostream>
#include <sstream>
using namespace std;
int main()
{
string s,a,b;
getline(cin,s);
cin >> a>> b;
stringstream ssin(s);
string str;
while(ssin>>str)
if(str==a)cout << b<< ' ';
else cout << str<< ' ';
return 0;
}
解题
先读进来字符串,再把第二个输入的字符替换掉第一个输入的字符。
先string一个s,getline(cin,s) 读入一个带空格的字符串
a是要替换的字符串,b是替换后的字符串。cin >> a >> b;
a,b中不包含空格。
下一步在s中找出a,用b替换
字符串流:
新知识:#include< sstream> stringstream的缩写,字符串流。
把一个字符串初始化为一个字符串流。
把ssin当成cin即可用法是一样的,只不过是ssin从字符串中读信息出来。
一直读入 str
如果str==a 就输出b否则就输出字符串本身。