📜  门|门CS 2012 |第 65 题(1)

📅  最后修改于: 2023-12-03 15:12:47.500000             🧑  作者: Mango

门|门CS 2012 |第 65 题 程序员介绍

本题为基础编程练习题,要求程序员对字符串进行操作。以下是题目要求和解答思路:

题目要求

给定两个字符串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类型进行操作。该题解题思路简单,但需要较高的代码实现能力。