C++标准库无trim函数,需手动实现。通过std::isspace配合循环查找首尾非空白字符,再用substr或erase提取或删除空白,可安全高效去除字符串首尾空格、制表符、换行等空白字符。
在C++中,标准库没有提供像其他语言那样的trim()函数来去除字符串首尾的空白字符,但可以通过std::string的成员函数结合std::isspace等工具手动实现。下面介绍一种常用且高效的方法,用于去除字符串首尾的空白字符(包括空格、制表符、换行等)。
可以编写两个辅助函数:一个用于查找第一个非空白字符的位置,另一个用于查找最后一个非空白字符的位置,然后使用substr提取中间部分。
#include#include #include std::string trim(const std::string& str) { if (str.empty()) return str;
size_t start = 0; size_t end = str.length() - 1; // 找到第一个非空白字符 while (start zuojiankuohaophpcn= end && std::isspace(static_castzuojiankuohaophpcnunsigned charyoujiankuohaophpcn(str[start]))) { ++start; } // 找到最后一个非空白字符 while (end youjiankuohaophpcn= start && std::isspace(static_castzuojiankuohaophpcnunsigned charyoujiankuohaophpcn(str[end]))) { --end; } return str.substr(start, end - start + 1);}
说明:
- 使用
std::isspace判断字符是否为空白(需包含)。static_cast是为了避免char为负值时传递给std::isspace导致未定义行为。- 函数返回新字符串,原字符串不变。
2. 使用示例
int main() { std::string s = " \t Hello World \n "; std::cout << "[" << trim(s) << "]" << std::endl; // 输出: [Hello World] return 0; }3. 去除特定空白字符(仅空格)
如果只想去除空格(不包括制表符或换行),可将
std::isspace替换为比较' ':while (start <= end && str[start] == ' ') ++start; while (end >= start && str[end] == ' ') --end;4. 原地修改字符串(减少内存分配)
若希望直接修改原字符串,可使用
erase:void trim_inplace(std::string& str) { if (str.empty()) return;size_t start = 0; size_t end = str.length() - 1; while (start zuojiankuohaophpcn= end && std::isspace(static_castzuojiankuohaophpcnunsigned charyoujiankuohaophpcn(str[start]))) ++start; str.erase(0, start); end = str.length() - 1; // 更新end位置 while (end != std::string::npos && std::isspace(static_castzuojiankuohaophpcnunsigned charyoujiankuohaophpcn(str[end]))) --end; str.erase(end + 1);}
基本上就这些。这个方法简洁、安全,适用于大多数C++项目中的字符串去空需求。
# 工具 # ai # c++ # ios # stream # 标准库 # String # 成员函数 # 字符串 # char # 循环 # 第一个 # 换行 # 适用于 # 可以通过 # 只想 # 或删除 # 再用 # 可将 # 不包括 # 是为了
相关文章: 香港服务器部署网站为何提示未备案? 如何通过西部建站助手安装IIS服务器? h5网站制作工具有哪些,h5页面制作工具有哪些? 婚礼视频制作网站,学习*后期制作的网站有哪些? 金*站制作公司有哪些,金华教育集团官网? 小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊? 网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站? 非常酷的网站设计制作软件,酷培ai教育官方网站? 宝塔新建站点报错如何解决? 如何解决VPS建站LNMP环境配置常见问题? 网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱? 如何通过建站之星自助学习解决操作问题? 头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站? 建站之星安装失败:服务器环境不兼容? 建站之星好吗?新手能否轻松上手建站? 制作企业网站建设方案,怎样建设一个公司网站? 高端建站三要素:定制模板、企业官网与响应式设计优化 建站之星后台管理如何实现高效配置? 威客平台建站流程解析:高效搭建教程与设计优化方案 如何在建站宝盒中设置产品搜索功能? 东莞专业制作网站的公司,东莞大学生网的网址是什么? 车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办? 建站之星如何实现网站加密操作? 网站制作免费,什么网站能看正片电影? 常州企业建站如何选择最佳模板? Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解 深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的? 如何通过云梦建站系统实现SEO快速优化? 建站之星如何实现PC+手机+微信网站五合一建站? 建站主机选哪家性价比最高? 制作网站的软件免费下载,免费制作app哪个平台好? 建站之星如何修改网站生成路径? 如何快速生成高效建站系统源代码? 如何在IIS中新建站点并解决端口绑定冲突? SQL查询语句优化的实用方法总结 动图在线制作网站有哪些,滑动动图图集怎么做? 实现虚拟支付需哪些建站技术支撑? 手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办? 如何确保FTP站点访问权限与数据传输安全? seo网站制作优化,网站SEO优化步骤有哪些? 如何正确下载安装西数主机建站助手? 家庭建站与云服务器建站,如何选择更优? 教育培训网站制作流程,请问edu教育网站的域名怎么申请? 建站主机服务器选型指南与性能优化方案解析 Thinkphp 中 distinct 的用法解析 如何在阿里云完成域名注册与建站? 营销式网站制作方案,销售哪个网站招聘效果最好? php json中文编码为null的解决办法 如何基于云服务器快速搭建个人网站? 建站为何优先选择香港服务器?
*请认真填写需求信息,我们会在24小时内与您取得联系。