21xrx.com
2024-05-20 08:46:06 Monday
登录
文章检索 我的文章 写文章
C++删除字符串中指定字符不使用string函数
2023-07-12 10:00:42 深夜i     --     --
C++ 删除 字符串 指定字符 不使用string函数

在C++中,删除字符串中的指定字符是一个常见的任务。尽管C++提供了一些有用的字符串函数,比如`erase()`和`remove()`,但是本文将介绍一种不使用这些函数的方法。

步骤1:定义一个函数来删除指定字符

首先,我们需要定义一个函数来删除指定字符。这个函数将接受两个参数:一个字符串和一个字符。这样,我们可以在字符串中删除指定的字符。


void remove_char(char *str, char c) {

  int i = 0, j = 0;

  while (str[i]) {

    if (str[i] != c)

      str[j++] = str[i];

    i++;

  }

  str[j] = '\0';

}

这个函数使用了两个指针,`i`和`j`。指针`i`沿着字符串移动,直到到达字符串的结尾。指针`j`指向输出字符串中下一个字符的位置。

如果`str[i]`不等于指定的字符`c`,那么它将被复制到`str[j]`中,并增加`j`的值。如果`str[i]`等于指定的字符`c`,则省略该字符,并继续移动`i`的指针。

当`i`到达字符串的结尾时,将在最后一个字符后面添加一个空字符。这个空字符告诉程序字符串的结尾在哪里。

步骤2:使用函数删除指定字符

现在,我们可以使用这个函数来删除字符串中的指定字符。要删除字符串中的字符,只需传递字符串和要删除的字符给函数。


char str[] = "Hello World!";

char c = 'o';

remove_char(str, c);

cout << "New String: " << str << endl;

输出:


New String: Hell Wrld!

正如预期的,指定字符`o`已经从原始字符串中删除。

不使用字符串函数删除字符串中的指定字符在C++中是非常实用的技巧。如果你需要在程序中删除特定字符,这个函数可以帮助你完成这个任务,而不用引入额外的库或写更多的代码。

  
  

评论区

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