21xrx.com
2024-12-23 01:26:08 Monday
登录
文章检索 我的文章 写文章
C++字符串去空格
2023-07-05 06:08:24 深夜i     --     --
C++ 字符串 去空格

C++是一种常用的计算机编程语言,它有很多功能强大的特性,其中就包括字符串的处理。在常规的字符串处理中,我们经常需要用到去除字符串中空格的算法,下面就介绍一下C++字符串去空格的方法。

方法一:利用STL库函数

STL是C++标准库的一部分,其中就包括字符串处理的函数库。我们可以使用STL提供的算法函数remove_if(),去除字符串中的空格。

示例代码:


#include <iostream>

#include <string>

#include <algorithm>

using namespace std;

string removeSpaces(string str)

{

  str.erase(remove_if(str.begin(), str.end(), ::isspace), str.end());

  return str;

}

int main()

{

  string str = " Hello World ! ";

  str = removeSpaces(str);

  cout << "Converted String: " << str;

  return 0;

}

输入:Hello World !

输出:Converted String: HelloWorld!

在上述示例代码中,我们首先定义了一个字符串removeSpaces(),并通过调用STL算法函数remove_if()来去除字符串中的空格。

函数remove_if()的第一个参数是要操作的数据起始位置,第二个参数是数据结束位置,第三个参数是要操作的谓词函数,它用于判断数据是否满足条件。::isspace是一个C++的字符类型判断函数,它可以判断输入字符是否为空格。因此,我们可以通过remove_if()函数和isspace函数,将字符串中所有的空格去除。

方法二:自定义字符串去空格函数

我们也可以自己定义一个函数来去除字符串中的空格,这个方法相对比较简单,但是需要考虑一些细节问题。

示例代码:


#include <iostream>

#include <string>

using namespace std;

string removeSpaces(string str)

{

  int j = 0;

  for (int i = 0; i < str.length(); i++)

  {

    if (str[i] != ' ')

    {

      str[j++] = str[i];

    }

  }

  str.erase(j);

  return str;

}

int main()

{

  string str = " Hello World ! ";

  str = removeSpaces(str);

  cout << "Converted String: " << str;

  return 0;

}

输入: Hello World !

输出:Converted String: HelloWorld!

在上述示例代码中,我们先定义了一个字符串函数removeSpaces(),并在函数中使用一个循环,遍历整个字符串。如果在循环中遇到一个非空格字符,则将它赋值给原字符串的新位置,同时将位置变量递增一位。最后,我们再使用str.erase()函数将字符串中多余的空间截去。

总结

通过上述两种方法,我们可以轻松地实现字符串去空格的功能。其中,STL库函数的方式更加简单,能够快速地处理字符串;而自定义函数需要考虑细节问题,但是可以更好地掌握算法过程。

无论是哪种方式,我们都需要认真思考问题,仔细分析算法过程,才能得到正确的结果。

  
  

评论区

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