当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ std::string::replace()用法及代码示例


C++中的字符串replace()函数替换字符串中[first,last)范围内的部分中的每个元素。它在 C++ 中的 std::string 类内部定义为提供替换函数的成员函数。

字符串replace()的语法

std::string::replace() 的语法如下:

string& replace( first, last, str);

字符串replace()的参数

  • first:指向我们要替换字符串的范围起始点的迭代器或索引值。
  • last:迭代器或索引值到我们要替换字符串的范围的结束点。
  • str:要插入范围中第一个和最后一个替换当前存在的字符的字符串。

字符串replace()的返回值

  • 该函数返回对当前字符串对象(this ptr)的引用。

字符串replace()示例

C++


// CPP code to demonstrate std::string::replace() 
#include <iostream> 
using namespace std; 
  
// Function for demonstration 
void replaceDemo(string s1, string s2, string s3, string s4) 
{ 
    // Using positions 
    cout << "Using positions:"
         << "\n"; 
    // Replaces 7 characters from 0th index by s2 
    s1.replace(0, 7, s2); 
    cout << s1 << endl; 
  
    // Replaces 3 characters from 0th index with "Hello" 
    s4.replace(0, 3, "Hello "); 
    cout << s4 << endl; 
  
    // Replaces 5 characters from 6th index of s4 with 
    // 5 characters from 0th of s3 
    s4.replace(6, 5, s3, 0, 5); 
    cout << s4 << endl; 
  
    // Replaces 5 characters from 6th index of s4 with 
    // 6 characters from string "to all" 
    s4.replace(6, 5, "to all", 6); 
    cout << s4 << endl; 
  
    // Replaces 1 character from 12th  index of s4 with 
    // 3 copies of '!' 
    s4.replace(12, 1, 3, '!'); 
    cout << s4 << endl; 
  
    // Using iterators 
    cout << "\nUsing iterators:"
         << "\n"; 
    // Replaces whole s2 string with s3 
    s2.replace(s2.begin(), s2.end(), s3); 
    cout << s2 << "\n"; 
  
    // Replaces 13 characters from begin of s1 with string 
    // "Example" 
    s1.replace(s1.begin(), s1.begin() + 13, "Example"); 
    cout << s1 << "\n"; 
  
    // Replace last 7 characters of s4 with first 12 
    // characters of the string "geeks from- here" 
    s4.replace(s4.end() - 7, s4.end(), "geeks from- here", 
               12); 
    cout << s4 << "\n"; 
  
    // Replaces last character with complete s2 string from 
    // s2.begin() till s2.end() 
    s4.replace(s4.end() - 1, s4.end(), s2.begin(), 
               s2.end()); 
    cout << s4 << "\n"; 
  
    // Replaces portion of string s4 starting from 5 
    // characters from s4.begin() to 15 characters from 
    // s4.begin() with 2 occurrences of ',' 
    s4.replace(s4.begin() + 5, s4.begin() + 15, 2, ','); 
    cout << s4 << "\n"; 
} 
  
// Driver code 
int main() 
{ 
    string s1 = "Example of replace"; 
    string s2 = "Demonstration"; 
    string s3 = "GeeksforGeeks"; 
    string s4 = "HeyWorld !"; 
  
    replaceDemo(s1, s2, s3, s4); 
    return 0; 
}

输出

Using positions:
Demonstration of replace
Hello World !
Hello Geeks !
Hello to all !
Hello to all!!!!

Using iterators:
GeeksforGeeks
Example of replace
Hello to geeks from- 
Hello to geeks from-GeeksforGeeks
Hello,,from-GeeksforGeeks

相关文章: std::string::replace_copy()、std::string::replace_copy_if
本文由萨克希·蒂瓦里。如果您喜欢 GeeksforGeeks(我们知道您喜欢!)并愿意做出贡献,您还可以使用以下方式撰写文章write.geeksforgeeks.org或将您的文章邮寄至review-team@geeksforgeeks.org。



相关用法


注:本文由纯净天空筛选整理自佚名大神的英文原创作品 std::string::replace() in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。