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

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

我目前正在使用以下代码对所有std::strings在我的节目中:

std::string s;s.erase(s.find_last_not_of(" \n\r\t")+1);

它很好,但我想知道是否有一些终结的情况下,它可能会失败?

当然,答案与优雅的替代方案和左修剪解决方案也是受欢迎的。


慕标琳琳
浏览 848回答 3
3回答

慕村9548890

使用以下代码向右修剪(尾随)空格和选项卡字符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 );}
打开App,查看更多内容
随时随地看视频慕课网APP