📅  最后修改于: 2023-12-03 15:29:52.350000             🧑  作者: Mango
删除字符串中的空格是一个常见的操作,特别是在处理用户输入时。在C++中,我们可以使用标准库中的函数来轻松地实现。
C++中的STL库提供了多种字符串操作函数。其中,用于删除字符串中空格的函数是std::remove_if()。我们可以使用该函数与std::string类中的erase()函数结合使用来删除字符串中的空格。
#include <iostream>
#include <string>
#include <algorithm>
int main()
{
std::string str = "Hello World";
// 使用 std::remove_if 和 std::string 的成员函数erase() 来删除字符串中的空格
str.erase(std::remove_if(str.begin(), str.end(), ::isspace), str.end());
std::cout << str << std::endl;
return 0;
}
std::remove_if()
函数的作用是对指定区间内的元素进行条件判断,满足条件的元素将被移动到数组的末尾,并返回指向新结尾的迭代器。非满足条件的元素保持原序不变。::isspace
是C++中定义在除了使用STL库函数,我们还可以通过手写算法来删除字符串中的空格。具体实现方法如下:
#include <iostream>
#include <string>
void remove_spaces(std::string& str)
{
int length = str.length();
// 创建一个新的字符串,用于存储没有空格的字符串
std::string new_str;
for (int i = 0; i < length; i++)
{
// 跳过空格字符
if (str[i] == ' ')
{
continue;
}
// 如果不是空格字符,则存储到新字符串中
new_str.push_back(str[i]);
}
// 将新字符串赋值回原字符串
str = new_str;
}
int main()
{
std::string str = "Hello World";
// 去掉字符串中的空格
remove_spaces(str);
std::cout << str << std::endl;
return 0;
}
无论哪种方法,都能够方便地删除字符串中的空格。在实际应用中,我们需要根据具体的场景来选择哪个方法。