C++ string删除指定字符_C++ erase删除字符串内容

admin 百科 14
答案:std::string的erase()函数结合find()可删除字符或子串,如删除首个'a'、所有空格或指定子串"and",推荐使用remove-erase惯用法高效处理,需注意检查npos防止越界。

C++ string删除指定字符_C++ erase删除字符串内容-第1张图片-佛山资讯网

在C++中,std::string 提供了 erase() 成员函数,可以用来删除字符串中的指定字符或字符段。结合查找函数如 find(),我们可以灵活地移除特定内容。

使用 erase() 删除单个字符或子串

erase() 函数有多种用法:

  • str.erase(pos):从位置 pos 开始删除到末尾
  • str.erase(pos, len):从 pos 删除 len 个字符
  • str.erase(iterator):删除迭代器指向的字符
  • str.erase(first, last):删除一段迭代器范围内的字符
例如,删除字符串中第一个 'a':

std::string str = "hello world";
size_t pos = str.find('o');
if (pos != std::string::npos) {
    str.erase(pos, 1); // 删除一个字符
}
// 结果: "hell world"

登录后复制

删除所有指定字符

如果要删除字符串中所有某个字符(如所有空格),可以用循环结合 find()erase()

std::string str = "C++ is powerful";
size_t pos;
while ((pos = str.find(' ')) != std::string::npos) {
    str.erase(pos, 1);
}
// 结果: "C++ispowerful"

登录后复制

更高效的方法是使用 remove-erase 惯用法(需包含 gorithm>):

立即学习“C++免费学习笔记(深入)”;

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~