这道题我们采用伪分割的做法会简单很多,即不对原有字符串进行任何处理,在输出的时候控制输出格式就好了;
代码如下:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s1;
getline(cin, s1);
char c, b;//c输入断点标志,b用于接收输入中的拼接字符串和断点标志间的空格
cin.get(c);
cin.get(b);
string s2;
getline(cin, s2);
cout << "[" << "\"";//输出引号“
for (int i = 0;i < s1.size();i++)
{
if (s1[i] == c)
{
cout << "\", \"";
}
else
{
cout << s1[i];
}
}
cout << "\"]" << endl;
for (int i = 0;i < s1.size();i++)
{
if (s1[i] == c)//判断是不是到达了分割点位
{
cout << s2;//输出拼接字符串
}
else
{
cout << s1[i];
}
}
return 0;
}