21xrx.com
2025-07-09 12:44:36 Wednesday
登录
文章检索 我的文章 写文章
C++如何删除字符串中的空白?
2023-07-07 12:05:57 深夜i     56     0
C++ 字符串 删除 空白

在C++中,字符串中的空白是指包括空格、制表符和换行符等在内的所有空白字符。在某些情况下,我们需要从一个字符串中删除这些空白字符。下面介绍几种方法:

1.使用STL库函数

STL库中提供了一个去除空格的函数——std::remove_if(),它接受两个参数:第一个参数是被操作的字符串的起始地址,第二个参数是字符串的结束地址。代码如下:

#include <algorithm>
#include <string>
std::string str = "  This is a  test!  ";
auto end = std::remove_if(str.begin(), str.end(), ::isspace);
str.erase(end, str.end());

2.自定义函数

#include <string>
void removeSpace(std::string& str)
{
  int i = 0;
  while (i < str.length())
  {
    if (::isspace(str[i]))
    {
      str.erase(i, 1);
    }
    else
    {
      ++i;
    }
  }
}

3.使用正则表达式

如果你熟悉正则表达式,那么也可以使用它来删除一个字符串中的所有空白字符。下面是一个示例程序:

#include <regex>
#include <string>
std::string str = "  This is a \t test!  \n";
std::regex pattern("[\\s]+");
str = std::regex_replace(str, pattern, "");

无论采用哪种方法,去除字符串中的空白都是一个简单的任务。需要注意的是,这些方法都会对原始字符串做出修改,因此如果需要保留原始字符串,就需要先将其复制到另一个变量中。

  
  

评论区