21xrx.com
2024-06-03 05:10:46 Monday
登录
文章检索 我的文章 写文章
C++ 字符串的去除空格和字符裁剪方法
2023-06-24 00:20:37 深夜i     --     --
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 可以方便地处理多个单词,但操作稍微繁琐一些。可以根据具体的需求选择合适的方法。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复
    相似文章