1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > c++ 去除字符串首尾的空白字符

c++ 去除字符串首尾的空白字符

时间:2018-10-24 13:03:19

相关推荐

c++ 去除字符串首尾的空白字符

c++ 去除字符串首尾的空白字符

方法一使用find_first_not_of和find_last_not_of方法二使用正则表达式(c++11)测试测试结果

方法一使用find_first_not_of和find_last_not_of

/*** @brief Trimmed 去掉首尾 空格白* @param str*/void Trimmed(std::string& str) {str.erase(0, str.find_first_not_of(" \r\n\t\v\f"));str.erase(str.find_last_not_of(" \r\n\t\v\f") + 1);// std::cout << "Trimmed [" << str << "]" << std::endl;}

方法二使用正则表达式(c++11)

/*** @brief Trimmed_Regex 正则表达式 去字符串首尾的 空白 c++ 11* @param str*/void Trimmed_Regex(std::string& str) {std::regex e("([\\S].*[\\S])");str = std::regex_replace (str,e,"$1",std::regex_constants::format_no_copy);// std::cout << "Trimmed_Regex [" << str << "]" << std::endl;//std::cout << "Trimmed_Regex [" << std::regex_replace (str,e,"$2") << "]" << std::endl;}

测试

int main() {//std::string str ("there is a subsequence in the string\n");//std::regex e ("\\b(sub)([^ ]*)"); // matches words beginning by "sub"//// using string/c-string (3) version://std::cout << std::regex_replace (s,e,"sub-$2");//// using range/c-string (6) version://std::cout << result;//// with flags://std::cout << std::regex_replace (s,e,"$1 and $2",std::regex_constants::format_no_copy);//std::cout << std::endl;clock_t start;std::string str = "\r\n \t\v\f { Test 123 78927849……&*%&*&*(【】)代收款} \t\v\f \r\n";std::cout << "[" << str << "]" << std::endl;start = clock();Trimmed_Regex(str);std::cout << clock() - start << " Trimmed_Regex [" << str << "]" << std::endl;start = clock();Trimmed(str);std::cout << clock() - start << " Trimmed [" << str << "]" << std::endl;//std::string result;//std::regex_replace (std::back_inserter(result), str.begin(), str.end(), e, "");// std::cout << "[" << result << "]" << std::endl;return 0;}

测试结果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。