21xrx.com
2025-06-23 10:18:39 Monday
文章检索 我的文章 写文章
C++字符串去除空格教程
2023-07-12 14:25:27 深夜i     20     0
C++ 字符串 去除空格 教程 编程语言

C++是一种高效、强大的编程语言,适合用于各种计算机程序的设计和开发。然而在实际编写C++程序时,有些操作可能不是那么直接简单。比如,去除字符串中的空格就是一种常见的操作。本篇文章将介绍如何使用C++去除字符串中的空格。

1. 使用erase函数

C++中的字符串类型是std::string,它提供了许多字符串的操作方法,包括erase函数。erase函数用于从字符串中删除指定位置的字符或一段字符。因此,我们可以使用它来删除空格字符。

示例代码:

#include <iostream>
#include <string>
using namespace std;
int main()
{
  string str = "Hello World";
  for (int i = 0; i < str.size(); i++)
  {
    if (str[i] == ' ')
    {
      str.erase(i, 1); //删除一个字符
    }
  }
  cout << str << endl; //输出HelloWorld
  return 0;
}

2. 使用substr函数和find_first_not_of函数

另一种常见的方法是使用substr函数和find_first_not_of函数。substr函数用于截取指定位置的一段子串,find_first_not_of函数则用于在字符串中查找第一个不是特定字符的位置。

示例代码:

#include <iostream>
#include <string>
using namespace std;
int main()
{
  string str = "Hello World";
  int i = 0;
  while (i < str.size())
  {
    if (str[i] == ' ')
    {
      int j = str.find_first_not_of(' ', i); //查找从i开始第一个不是空格的位置
      if (j == string::npos) //如果没找到,则说明后面的字符都是空格,直接删除即可
      {
        str.erase(i, string::npos);
        break; //跳出循环
      }
      str.erase(i, j - i); //删除从i到j之间的字符
      i = j; //更新i的值,从下一个字符开始查找
    }
    else
    {
      i++; //继续往下遍历
    }
  }
  cout << str << endl; //输出HelloWorld
  return 0;
}

总结

以上就是介绍C++中去除字符串中的空格的两种常见方法。使用erase函数较为简单,可以直接删除空格字符;而使用substr函数和find_first_not_of函数则需要多做一些查找、计算的工作,但可以更灵活地去除字符串中的空格。在实际编写程序时,应根据具体情况选择合适的方法。

  
  

评论区