📜  C++ std::string 查找和替换 - C++ (1)

📅  最后修改于: 2023-12-03 14:39:50.398000             🧑  作者: Mango

C++ std::string 查找和替换

在C++中,我们可以使用std::string类来表示字符串,它还提供了一些方便的方法来查找和替换字符串。本文将介绍如何在std::string中查找和替换文本。

查找子串

使用std::string::find方法可以查找一个字符串中是否包含另一个子字符串。如果找到了,返回匹配子串的第一个字符的位置;如果找不到,则返回std::string::npos。以下是一个示例:

#include <iostream>
#include <string>

using namespace std;

int main() {
    string str = "Hello world!";
    string sub = "world";

    size_t pos = str.find(sub);

    if (pos != string::npos) {
        cout << "Found at position " << pos << endl;
    } else {
        cout << "Not found!" << endl;
    }

    return 0;
}

输出为:

Found at position 6

在上面的示例中,我们定义了一个字符串str并用另一个字符串sub来查找它。我们使用std::string::find方法查找位置,如果找到,输出匹配子串的位置;否则输出"Not found!"。

另外,我们还可以使用std::string::rfind方法来查找最后一次出现的位置。例如:

#include <iostream>
#include <string>

using namespace std;

int main() {
    string str = "Hello C++ world!";
    string sub = "o";

    size_t pos = str.rfind(sub);

    if (pos != string::npos) {
        cout << "Found at position " << pos << endl;
    } else {
        cout << "Not found!" << endl;
    }

    return 0;
}

输出为:

Found at position 16

在上面的示例中,我们查找了最后一个字符"o"的位置。

替换子串

使用std::string::replace方法可以替换字符串中的一个子串。以下是一个示例:

#include <iostream>
#include <string>

using namespace std;

int main() {
    string str = "Hello world!";
    string sub = "world";
    string repl = "C++";

    size_t pos = str.find(sub);

    if (pos != string::npos) {
        str.replace(pos, sub.length(), repl);
    }

    cout << str << endl;

    return 0;
}

输出为:

Hello C++!

在上面的示例中,我们定义了一个字符串str、一个要替换的子串sub和一个要替换的字符串repl。然后我们使用std::string::find方法查找子串的位置,如果找到了,使用std::string::replace方法进行替换。最后输出结果。

需要注意的是,如果子串没有被找到,replace方法不会产生影响。

总结

本文介绍了C++ std::string类中查找和替换文本的方法。如果你需要在字符串中执行类似的操作,希望这些示例能给你带来帮助。