21xrx.com
2024-09-19 09:46:04 Thursday
登录
文章检索 我的文章 写文章
C++如何去除字符串头尾的空格
2023-06-26 06:00:52 深夜i     --     --
C++ 字符串 空格 去除

在C++编程中,经常会涉及到字符串的操作。而有时候,我们需要去掉字符串首尾空格,以方便后续处理。那么,C++如何去除字符串头尾的空格呢?

方法一:使用erase和find_first_not_of

我们可以使用string类提供的erase和find_first_not_of函数来删除字符串头尾的空格。具体步骤如下:

1.使用find_first_not_of函数找到第一个非空格字符的位置(从字符串开头开始查找)。

2.使用erase函数删除字符串开头的空格部分。

3.使用find_first_not_of函数找到字符串末尾第一个非空格字符的位置(从字符串结尾开始查找)。

4.使用erase函数删除字符串结尾的空格部分。

下面是示例代码:


#include <iostream>

#include <string>

using namespace std;

string trim(string s)

{

  // 删除字符串开头的空格

  s.erase(0, s.find_first_not_of(" "));

  

  // 删除字符串结尾的空格

  s.erase(s.find_last_not_of(" ") + 1);

  

  return s;

}

int main()

{

  string str = "  Hello World!  ";

  

  cout << "Before trimming: " << str << endl;

  

  str = trim(str);

  

  cout << "After trimming: " << str << endl;

  

  return 0;

}

方法二:使用stringstream和getline

还可以使用stringstream和getline函数去除字符串的空格。具体步骤如下:

1.将需要去除空格的字符串放入stringstream对象中。

2.使用getline函数从stringstream对象中逐行读取字符串,并存储到另一个string对象中。

3.将存储到另一个string对象中的字符串返回。

下面是示例代码:


#include <iostream>

#include <sstream>

#include <string>

using namespace std;

string trim(string s)

{

  stringstream ss(s);

  string result;

  while (getline(ss, s, ' '))

  {

    result += s;

  }

  

  return result;

}

int main()

{

  string str = "  Hello World!  ";

  

  cout << "Before trimming: " << str << endl;

  

  str = trim(str);

  

  cout << "After trimming: " << str << endl;

  

  return 0;

}

总结

以上就是C++去除字符串头尾空格的两种方法。我们可以根据实际需求选择合适的方法。值得注意的是,这两种方法都可以通过封装成函数,方便后续使用。

  
  

评论区

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