去掉string里面的所有空格

在读取配置文件的每行内容的时候,需要去掉字符串中的空格或则tab键,
在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}
因为配置文件里每行的内容不会很多,使用递归来讲可能也不会
对整体程序有明显的降低。

如果只是去除两端的空格字符则比较简单一些,网络到处都有它相关的例子:
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里面的所有空格)