您的位置:首页 > 编程语言 > C语言/C++

C++去除字符串首尾和串中多余空格

2016-08-20 09:23 501 查看
一、问题描述

去除字符串首尾空格,以及字符串中多余空格,如:s = “    Hello        word !    ”处理后变为:result = “Hello world!”

二、思路描述

先去掉字符串的首尾空格,然后去除串中多余空格(如果有多于1个空格,词与词之间保留最后一个空格)。

三、代码

string & trim(string s){
if(s.empty()){
return s;
}
s.erase(0,find_first_not_of(" "));
s.erase(find_last_not_of(" ") + 1);
return s;
}
string remove_surplus_spaces(const string& s){
string src = trim(s);
string result = "";
for(int i = 0; src[i] != '\0'; i++){
if(src[i] != ' ' ){
result.append(1,src[i]);
}else{
if(src[i+1] != ' ')
result.append(1,src[i]);
}
}
return result;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ string