去除string首尾非\t、\r\n、""字符,要求高效

1yyyyyyyyyyyy 1yyyyyyyyyyyy 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
比如这样一个string = "\r\n\t \t 京信通信系统(广州)有限公司南京办事处\t\t ";

要求只留下“京信通信系统(广州)有限公司南京办事处”

我写了一个,貌似速度问题很大,而且不通用,最后一个\t也未能去除:


string& StringTrim(string& str)
{
if (str.empty())
{
return str;
}

// str.erase(0, str.find_first_not_of("\r\n"));

int pos = str.find_first_not_of("\r\n");
if (pos > 0)
{
str.erase(0, pos);
}

while (true)
{
pos = str.find_first_of("\\t");
if (pos > 0)
{
str.erase(0, pos);
continue;
}
break;
}
str.erase(0, str.find_first_not_of("\t"));
str.erase(0, str.find_first_not_of(" "));
str.erase(str.find_last_not_of(" "));

str.erase(0, str.find_first_not_of("\t"));
str.erase(0, str.find_first_not_of(" "));

return str;
}


请教一下大家,这个函数应该怎样写?
...全文

相关推荐

C++ string核心原理与高效编程实战:从内存模型到SSO优化

在C++编程中,字符串处理是基础且高频的操作。传统C风格字符串(char*)需要手动管理内存和空字符,易引发缓冲区溢出和内存泄漏。C++标准库提供的std::string通过封装底层字符数组,实现了自动内存管理和动态扩容,其原理类似于动态数组(如vector),但针对字符串操作进行了专门优化。这一设计体现了C++的“资源管理”和“零开销抽象”哲学,在保证安全性的同时追求运行效率。在实际工程中,理解string的内存模型(包括容量capacity与大小size)、小字符串优化(SSO)机制以及迭代器失效规则至

weixin_30315723

C#字符串分割深度解析:从Split到Regex的高效实践与避坑指南

字符串处理是编程中的基础操作,其核心原理在于将连续的字符序列按照特定规则解析为有意义的片段。在C#中,System.String.Split方法提供了基于字符分隔符的基础分割能力,而System.Text.RegularExpressions.Regex类则支持基于正则表达式的复杂模式匹配分割,两者共同构成了处理文本解析的技术工具箱。从技术价值看,正确的分割策略直接影响数据清洗、日志分析和配置解析等场景的准确性与性能。特别是在处理不规则数据格式时,如包含转义字符或嵌套结构的文本,需要深入理解分割边界与捕获组

adgnfega11455

C++ string核心用法与性能优化:从基础到实战

在C++编程中,字符串处理是基础且高频的操作。std::string作为标准库提供的字符串类,封装了字符序列的存储与管理,其内部通常采用动态数组实现,并可能应用短字符串优化(SSO)等策略以提升短字符串的处理性能。理解其内存管理与操作原理,对于编写高效、安全的代码至关重要。string的技术价值在于它提供了比C风格字符串更安全、更便捷的接口,自动管理内存,避免了缓冲区溢出等常见问题。在实际应用中,string广泛用于文本处理、数据解析、配置读取等场景。本文聚焦于string的核心操作、性能陷阱及与strin

weixin_34034261

Shell脚本字符串非空判断:原理、方法与实战避坑指南

在Shell脚本编程中,变量处理是基础且核心的操作,其中字符串非空判断直接关系到脚本的健壮性与可靠性。其原理涉及Shell的变量展开、命令替换和条件测试机制,不同Shell解释器(如Bash、Zsh)的实现细节存在差异。掌握正确的判断方法能有效避免因空值导致的逻辑错误,例如循环失控或文件误删,这是构建防御性编程的关键。在工程实践中,该技术广泛应用于处理命令行参数、验证配置文件、解析命令输出等不确定输入场景。本文聚焦于Shell脚本中字符串非空判断的多种方法,深入解析`[[ ]]`、`[ ]`、参数扩展等核心

weixin_30340617

【Trans论文复现】基于Agent的电力市场深度决策梯度(深度强化学习)算法建模研究(Python代码实现)

内容概要:本文围绕《【Trans论文复现】基于Agent的电力市场深度决策梯度(深度强化学习)算法建模研究(Python代码实现)》展开,深入探讨了如何运用深度强化学习中的深度决策梯度方法对复杂电力市场环境进行建模与仿真。研究通过构建多智能体系统,模拟市场主体在电力市场中的博弈行为与优化决策过程,重点实现了智能体在动态市场环境下基于深度神经网络的策略学习机制。文中详细阐述了算法的理论基础、模型架构设计及Python代码实现路径,涵盖市场出清、竞价策略优化、资源配置等关键环节,强调对电力市场动态演化过程的精准刻画与预测能力,为复杂能源系统的智能化决策提供了可复现的技术范式。; 适合人群:具备一定Python编程基础和机器学习背景,从事电力系统、能源经济、智能优化等相关领域研究的研发人员或研究生。; 使用场景及目标:① 掌握深度强化学习在电力市场中的建模方法;② 学习多智能体系统在复杂博弈环境下的决策机制;③ 实现电力市场竞价、调度与资源配置的仿真分析与优化。; 阅读建议:建议读者结合文中提供的Python代码与仿真环境动手实践,深入理解算法细节与模型构建逻辑,同时可参考相关文献进一步拓展至其他能源市场应用场景。

大龙不吃小鱼干
评论 32
收藏 已收藏
分享
返回顶部
1yyyyyyyyyyyy
C++ 语言 65,214 成员 250,514 内容