C++删除字符串中的所有空格与换行(任意字符)

风陵南·2024-10-11 15:56·694 次阅读

C++删除字符串中的所有空格与换行(任意字符)

删除字符串中的所有空格与换行

  • 使用头文件中的remove函数,注意:std::remove 不会改变容器的大小,它只是将元素移动到容器的末尾。因此,我们需要调用 erase 来实际从字符串中删除这些元素。

  • 使用 std::remove 算法,它重排元素,使得要删除的元素(在这里是空格和换行符)被放在序列的末尾,然后返回一个指向新逻辑末尾的迭代器。接着,我们使用 erase 方法来删除这些不需要的字符。

  • 只需替换掉remove函数的第三个参数即可改为删除字符串中的所有该任意字符。

Copy
#include <iostream>
#include <string>
#include <alogrithm>
void removeSpacesAndNewlines(std::string& str) {
// 第三个参数即为要删除的元素(注意是字符串中的全部该元素)
// remove将匹配的元素移动至末尾(逻辑删除),实际空间仍被占用
std::string::iterator end_pos = std::remove(str.begin(), str.end(), ' ');
// 删除掉末尾用不到的元素(并释放掉空间)
str.erase(end_pos, str.end());
end_pos = std::remove(str.begin(), str.end(), '\n');
str.erase(end_pos, str.end());
}
int main() {
std::string str = " This is a test string with spaces\nand newlines.\n";
std::cout << "Original string:\n" << str << std::endl;
removeSpacesAndNewlines(str);
std::cout << "String after removing spaces and newlines:\n" << str << std::endl;
return 0;
}
posted @   风陵南  阅读(694)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示