为了账号安全,请及时绑定邮箱和手机立即绑定

修剪STD:String的最佳方法是什么?

修剪STD:String的最佳方法是什么?

C++ C
慕标琳琳 2019-06-10 20:42:36
修剪STD:String的最佳方法是什么?我目前正在使用以下代码对所有std::strings在我的节目中:std::string s;s.erase(s.find_last_not_of(" \n\r\t")+1);它很好,但我想知道是否有一些终结的情况下,它可能会失败?当然,答案与优雅的替代方案和左修剪解决方案也是受欢迎的。
查看完整描述

3 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

使用以下代码向右修剪(尾随)空格和选项卡字符std::strings (理想):

// trim trailing spacessize_t endpos = str.find_last_not_of(" \t");size_t startpos = str.find_first_not_of(" \t");
if( std::string::npos != endpos ){
    str = str.substr( 0, endpos+1 );
    str = str.substr( startpos );}else {
    str.erase(std::remove(std::begin(str), std::end(str), ' '), std::end(str));}

为了平衡,我还会包括左边的修整代码(理想):

// trim leading spacessize_t startpos = str.find_first_not_of(" \t");if( string::npos != startpos ){
    str = str.substr( startpos );}


查看完整回答
反对 回复 2019-06-10
  • 3 回答
  • 0 关注
  • 847 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信