一、字符串去空格(没有处理字符串中间的空格)
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."abc123" --> "abc123"
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.空格() "abc123" --> "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));
}
原文链接: https://www.cnblogs.com/alylee/p/TrimString.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/96558
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!