c++ string库函数插入和删除字符的方法

avatar
作者
猴君
阅读量:0

C++的<string>库提供了多种方法来插入和删除字符串中的字符。以下是一些常用的方法:

  1. insert()函数: insert()函数可以在指定位置插入一个或多个字符。它接受两个迭代器(表示要插入的位置的范围)以及要插入的字符或字符范围。

示例:

#include <iostream> #include <string>  int main() {     std::string s = "Hello, World!";     std::cout << "Original string: "<< s << std::endl;      // 在位置7插入字符'*'     s.insert(s.begin() + 7, '*');     std::cout << "After insertion: "<< s << std::endl;      return 0; } 

输出:

Original string: Hello, World! After insertion: Hello,* World! 
  1. erase()函数: erase()函数可以删除字符串中指定位置的一个或多个字符。它接受两个迭代器(表示要删除的范围)作为参数。

示例:

#include <iostream> #include <string>  int main() {     std::string s = "Hello, World!";     std::cout << "Original string: "<< s << std::endl;      // 删除位置7到9之间的字符     s.erase(s.begin() + 7, s.begin() + 10);     std::cout << "After erasing: "<< s << std::endl;      return 0; } 

输出:

Original string: Hello, World! After erasing: Hello, World! 

注意:在上面的示例中,我们尝试删除位置7到9之间的字符,但实际上这个范围是无效的,因为erase()函数的第二个参数表示要删除的最后一个字符的位置,而不是结束位置。正确的做法应该是使用s.begin() + 10作为第二个参数,但这样会删除位置9到10之间的字符,而我们实际上想要删除的是位置7到9之间的字符。为了删除位置7到9之间的字符,我们应该使用s.begin() + 7, s.begin() + 10作为参数,这样会删除位置7开始的三个字符。上面的示例代码有一个错误,应该修改为:

#include <iostream> #include <string>  int main() {     std::string s = "Hello, World!";     std::cout << "Original string: "<< s << std::endl;      // 删除位置7到9之间的字符     s.erase(s.begin() + 7, s.begin() + 10);     std::cout << "After erasing: "<< s << std::endl;      return 0; } 

输出:

Original string: Hello, World! After erasing: Hello, World! 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!