21xrx.com
2024-11-05 12:17:13 Tuesday
登录
文章检索 我的文章 写文章
如何用C++删除末尾空格
2023-07-04 22:18:14 深夜i     --     --
C++ 删除 末尾 空格

在C++编程中,对于一些字符串的处理,可以经常遇到需要删除末尾空格的情况。本文将介绍如何用C++删除末尾空格。

方法一:使用C++自带的函数

在C++中,可以使用自带的函数——std::string::erase函数来删除字符串末尾的空格。

std::string str = "hello world  "; //需要删除空格的字符串

int pos = str.find_last_not_of(' '); //查找最后一个非空格字符的位置

if (pos != std::string::npos) {   //如果存在非空格字符

  str.erase(pos + 1);       //将空格字符以及后面的字符删除

}

上述代码中,std::string::find_last_not_of函数用来查找最后一个非空格字符的位置,如果找到了,则使用std::string::erase函数将空格字符以及后面的字符删除。

方法二:使用自定义函数

如果不想使用自带的函数,可以自定义函数来删除字符串末尾的空格。

std::string trim_right(const std::string& str) {

  int pos = str.size() - 1; //字符串最后一个字符的位置

  while (pos >= 0 && str[pos] == ' ')  //从后往前遍历字符串

  return str.substr(0, pos + 1); //将字符串截取到非空格字符的位置

}

上述代码中,从字符串最后一个字符的位置开始,向前遍历字符串,判断是否为空格。如果为空格,则将pos向前移动一个位置,一直到pos指向最后一个非空格字符的位置。最后使用std::string::substr函数将字符串截取到非空格字符的位置。

以上两种方法都可以有效删除字符串末尾的空格。选择哪种方法,可以根据实际情况进行选择。

  
  

评论区

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