21xrx.com
2025-03-21 08:19:54 Friday
文章检索 我的文章 写文章
C++ 字符串的去除空格和字符裁剪方法
2023-06-24 00:20:37 深夜i     18     0
C++ 字符串 去除空格 字符裁剪 方法

在使用 C++ 程序语言编写程序时,可能会遇到需要去除字符串中的空格和裁剪字符的需求。这篇文章将介绍两种 C++ 字符串的去除空格和字符裁剪方法。

方法一:使用 erase() 函数去除空格和裁剪字符

C++ 中的 std::string 类有一个 erase() 函数,可以用来剪切字符串中字符的一部分。使用此函数可以实现去除字符串中的空格和裁剪字符的效果。

代码示例:

#include<iostream>
#include<string>
using namespace std;
int main()
{
  string str = " hello world ";
  str.erase(0, str.find_first_not_of(" "));
  str.erase(str.find_last_not_of(" ") + 1);
  cout << str << endl;
  return 0;
}

输出结果:

hello world

在上面的代码示例中,首先定义了一个字符串变量 `str`,并初始化为 `" hello world "`。然后使用 `str.find_first_not_of(" ")` 函数找到字符串中第一个非空格字符的位置。接着使用 `str.erase(0, str.find_first_not_of(" "))`,将字符串前面的空格剪除。

最后使用 `str.find_last_not_of(" ")` 找到字符串中最后一个非空格字符的位置,再用 `str.erase(str.find_last_not_of(" ") + 1)` 将字符串末尾的空格剪掉。

方法二:使用 stringstream 去除空格和裁剪字符

stringstream 是 C++ 中的一个流类库,可以用来将字符串按照空格、换行等分隔符进行划分,并方便的进行输入输出。

代码示例:

#include<iostream>
#include<string>
#include<sstream>
using namespace std;
int main()
{
  string str = " hello world ";
  stringstream ss;
  ss << str;
  str = "";
  string tmp;
  while (ss >> tmp)
  {
    str += tmp + " ";
  }
  str.erase(0, str.find_first_not_of(" "));
  str.erase(str.find_last_not_of(" ") + 1);
  cout << str << endl;
  return 0;
}

输出结果:

hello world

在上面的代码示例中,首先定义了一个字符串变量 `str`,并初始化为 `" hello world "`。然后使用 `stringstream` 对象将字符串转换为流,之后使用一个 `while` 循环不断从流中获取单词,将其加入新的字符串中。

最后,使用前面提到的 `erase()` 函数去除字符串中的前后空格。这种方法适用于需要处理多个单词的情况。

总结

以上两种方法都可以实现 C++ 字符串的去除空格和裁剪字符操作,使用起来各有优劣。第一种方法操作比较简单,适合处理单个字符串;第二种方法使用 stringstream 可以方便地处理多个单词,但操作稍微繁琐一些。可以根据具体的需求选择合适的方法。

  
  

评论区