21xrx.com
2024-09-20 00:22:51 Friday
登录
文章检索 我的文章 写文章
C++中如何删除字符串中的指定字符?
2023-07-08 14:58:00 深夜i     --     --
C++ 删除 字符串 指定字符

在C++中,删除字符串中的指定字符可以使用erase()函数来实现。erase()函数接受两个参数,第一个参数是要删除的字符的位置,第二个参数是要删除多少个字符。

假设我们有一个字符串str,现在我们要删除其中的字符c,可以使用以下代码:


while(str.find(c) != std::string::npos) {

  str.erase(str.find(c), 1);

}

其中,str.find(c)函数用于查找字符c在字符串str中的位置,如果不存在返回std::string::npos。由于可能会有多个字符c需要删除,因此我们使用while循环来反复执行删除操作,直到字符串中不存在字符c为止。

该方法的时间复杂度为O(n^2),因为每次删除需要遍历整个字符串查找字符c的位置。如果要优化时间复杂度,可以使用双指针法先将所有不需要删除的字符移到字符串的左侧,最后将左侧的部分作为新的字符串即可。


int slow = 0, fast = 0;

while (fast < str.size()) {

  if (str[fast] != c) {

    str[slow++] = str[fast];

  }

  fast++;

}

str.erase(slow, str.size() - slow);

以上是两种常用的方法来删除字符串中的指定字符,根据具体需求可以选择不同的实现方式。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复