📅  最后修改于: 2023-12-03 15:12:47.500000             🧑  作者: Mango
本题为基础编程练习题,要求程序员对字符串进行操作。以下是题目要求和解答思路:
给定两个字符串s1和s2,要求将s1中的所有子串””替换成s2,并输出替换后的s1字符串。
此题的难点在于如何将s1中所有的””替换成s2。可以使用C++中的字符串函数string::find()
和string::replace()
来解决该问题。具体的实现方法如下:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s1, s2;
getline(cin, s1); //读入s1字符串
getline(cin, s2); //读入s2字符串
int pos = 0;
while ((pos = s1.find("<em>", pos)) != string::npos) {
s1.replace(pos, 4, s2); //将s1中的子串"<em>"替换成s2
pos += s2.length(); //更新下一次查找的起始位置
}
cout << s1 << endl; //输出替换后的s1字符串
return 0;
}
以上代码使用了getline()
函数读入两个字符串,然后使用string::find()
函数查找s1中的子串””,并使用string::replace()
函数将其替换成s2。注意需要更新下一次查找的起始位置。最后输出替换后的s1字符串即可。
该题考察了程序员的字符串操作能力,尤其是对字符串查找和替换函数的使用。同时也考虑到了字符串长度可能会超过常规数据类型的限制,因此需要选用C++中的string类型进行操作。该题解题思路简单,但需要较高的代码实现能力。