在讀取配置文件的每行內容的時候,需要去掉字符串中的空格或則tab鍵,
在C里實現它還是比較容易,但要是用string類來存儲每行字符串的時候,
可能就不會象C那樣容易處理字符串的每個字符。
為了處理方便,利用遞歸來去掉string的所有空格字符:
對整體程序有明顯的降低。
如果只是去除兩端的空格字符則比較簡單一些,網絡到處都有它相關的例子:
在C里實現它還是比較容易,但要是用string類來存儲每行字符串的時候,
可能就不會象C那樣容易處理字符串的每個字符。
為了處理方便,利用遞歸來去掉string的所有空格字符:
1
string& trim(string &str, string::size_type pos = 0)
2

{
3
static const string delim = " \t"; //刪除空格或者tab字符
4
pos = str.find_first_of(delim, pos);
5
if (pos == string::npos)
6
return str;
7
return trim(str.erase(pos, 1));
8
}
因為配置文件里每行的內容不會很多,使用遞歸來講可能也不會
string& trim(string &str, string::size_type pos = 0)2


{3
static const string delim = " \t"; //刪除空格或者tab字符4
pos = str.find_first_of(delim, pos);5
if (pos == string::npos)6
return str;7
return trim(str.erase(pos, 1));8
}對整體程序有明顯的降低。
如果只是去除兩端的空格字符則比較簡單一些,網絡到處都有它相關的例子:
1
string trimEnd(string &str)
2

{
3
const string &delim =" \t" ;
4
string r=str.erase(str.find_last_not_of(delim)+1);
5
return r.erase(0,r.find_first_not_of(delim));
6
}
string trimEnd(string &str)2


{3
const string &delim =" \t" ;4
string r=str.erase(str.find_last_not_of(delim)+1);5
return r.erase(0,r.find_first_not_of(delim));6
}


我的個人簡歷第二頁