21xrx.com
2024-09-19 09:25:53 Thursday
登录
文章检索 我的文章 写文章
C++如何删除字符串中的空白?
2023-07-07 12:05:57 深夜i     --     --
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, "");

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

  
  

评论区

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