C++ 实现Trim
来源:互联网 发布:澳洲留学中介 知乎 编辑:程序博客网 时间:2024/05/29 12:47
一、字符串去空格(没有处理字符串中间的空格)
lTrim:除去字符串开头的空格 eg." abc123 " --> "abc123 "
rTrim:除去字符串末尾的空格 eg." abc123 " --> " abc123"
Trim:除去字符串开头和末尾的空格 eg." abc123 " --> "abc123"
品红色为空格
1.去除开头的空格
void lTrim(char * str){ int i , len ; len = strlen( str ) ; for( i=0; i<len; i++) { if( str[i] != ' ') break ; } memmove(str,str+i,len-i+1); return ;}
2.去除末尾的空格
void rTrim(char * str){ int i,len ; len = strlen( str ) ; for(i = len-1;i>=0;i--) { if( (str[i] != ' ')&&(str[i]!=0x0a)&&(str[i]!=0x0d) ) break ; } str[i+1] = 0 ; return ;}
3.去除开头和末尾的空格
void Trim(char * str){ int i , len ; //先去除左边的空格 len = strlen( str ) ; for( i=0; i<len; i++) { if( str[i] != ' ') break ; } memmove(str,str+i,len-i+1); //再去除右边的空格 len = strlen( str ) ; for(i = len-1; i>=0; i--) { if(str[i] != ' ') break ; } str[i+1] = 0 ; return ;}
也可以这样
void Trim(char * str){
lTrim(str);
rTrim(str);
}
注:1.这里没有处理字符串中间的空格 eg." abc 123 " --> "abc 123"
2.这里只去除了“空格”和末尾的“回车”、“换行”符,其他的可以根据需要添加
" " (ASCⅡ 32(0x20)) 一个空格"\t" (ASCⅡ 9(0x09)) tab键"\n" (ASCⅡ 10 (0x0A)) 换行符"\r" (ASCⅡ 13 (0x0D)) a carriage return."\0" (ASCⅡ 0 (0x00)) 空字符"\x0B" (ASCⅡ 11 (0x0B)) a vertical tab.
二、从pstr中删除所有rmchar字符
包括字符串中间的字符: eg.空格( ) " abc 123 " --> "abc123" eg.逗号(,) ",,,abc,,,123,,," --> "abc123"
//从pstr中删除所有rmchar字符void TrimEx(char *pstr,char rmchr){ char szOut[500]; memset(szOut,0,sizeof(szOut)); if (strlen(pstr)>sizeof(szOut)) return; int index=0; for(int i=0;i<strlen(pstr);i++) { if( pstr[i] != rmchr) { szOut[index++]=pstr[i]; } } strcpy(pstr,szOut);}
三、附录:在网上找到的其他“去除开头和末尾空格”的方法,也拷贝下,根据需要选择
A.
inline string& lTrim(string &ss) { string::iterator p=find_if(ss.begin(),ss.end(),not1(ptr_fun(isspace))); ss.erase(ss.begin(),p); return ss; } inline string& rTrim(string &ss) { string::reverse_iterator p=find_if(ss.rbegin(),ss.rend(),not1(ptr_fun(isspace))); ss.erase(p.base(),ss.end()); return ss; } inline string& trim(string &st) { lTrim(rTrim(st)); return st; }
B.
string LTrim(const string& str) { return str.substr(str.find_first_not_of(" \n\r\t")); } string RTrim(const string& str) { return str.substr(0,str.find_last_not_of(" \n\r\t")+1); } string Trim(const string& str) { return LTrim(RTrim(str)); }
欢迎转载,方便的话,请注明出处,谢谢!
- trim 函数c实现
- C语言实现trim函数
- [Linux C] linux C实现trim功能
- trim函数的C语言实现
- C/C++下Trim的实现
- Objective-C中trim的实现
- C语言实现的trim函数str_trim
- trim函数的C语言实现
- C/C++ 不使用库 实现Trim
- JS实现Trim() Trim(str)
- C语言实现trim函数,若有问题,请指正
- C语言去除字符串首尾空格,trim()函数实现
- C Tricks(十三)—— trim 的实现
- C字符串操作:两头堵实现trim()
- Trim string for C
- C语言 trim 函数
- Trim 方法(C#)
- C的Trim()函数
- Effective C++ 读书笔记(30)
- NYOJ-216-A problem is easy
- 我的第一天 2013-7-20
- Ubuntu 安装wine停在正在设定ttf-mscorefonts-installer
- Binder基本概念流程学习
- C++ 实现Trim
- 亲亲串(dp)
- 颜色代码表
- 黑马程序员——Collection
- string与string.h以及cstring的关系区别
- Timus 1303. Minimal Coverage
- obtainMessage与sendMessage
- poj2553The Bottom of a Graph(强连通+缩点)
- POJ - 3624 《Charm Bracelet》 【0-1背包】