📜  c++ replace - C++ (1)

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

C++ 字符串替换

在 C++ 中,字符串替换可以使用一些内置的函数或使用正则表达式。本文将介绍这两种方法。

使用内置函数替换文本

C++ 提供了 std::string 类型和相关函数来处理字符串。其中,replace 函数可以用来替换字符串中的子串。

下面是一个示例程序,给定一个字符串和要替换的子串,程序将替换所有出现的子串后输出结果:

#include <iostream>
#include <string>
 
int main() {
    std::string str = "c++ replace - C++";
    std::string search = "c++";
    std::string replace = "C++";
 
    size_t pos = 0;
    while ((pos = str.find(search, pos)) != std::string::npos) {
         str.replace(pos, search.length(), replace);
         pos += replace.length();
    }
 
    std::cout << str << std::endl;
    return 0;
}

输出结果为:

C++ replace - C++
使用正则表达式替换文本

C++11 引入了支持正则表达式的 <regex> 头文件。使用正则表达式进行替换可以更加灵活。

下面是一个示例程序,给定一个字符串和要替换的正则表达式,程序将替换所有匹配的子串后输出结果:

#include <iostream>
#include <string>
#include <regex>
 
int main() {
    std::string str = "c++ replace - C++";
    std::regex re("c\\+\\+");
    std::string replace = "C++";
    std::string result = std::regex_replace(str, re, replace);
 
    std::cout << result << std::endl;
    return 0;
}

输出结果为:

C++ replace - C++

上面的正则表达式中, \\+\\+ 表示匹配两个加号,由于 + 是一个特殊字符,需要加上转义符 \

总结

在 C++ 中,可以使用内置函数或正则表达式进行字符串替换。内置函数 replace 可以替换指定的子串,使用正则表达式更加灵活,可以根据需要进行扩展,但是需要注意正则表达式中的特殊字符需要转义。