c语言实现php的trim标签
清除字符串开头结尾除空白
修改原字符串
不能清除全角字符
/*
*清除字符串开始结尾处的空白
*修改原字符串
**/
staticchar*trim(char*str){
char*p1=str,*p2=NULL,*p3=NULL;
intflag=0;
while(*(p1)!='\0'){
if(isspace(*p1)){
if(p3==NULL)p3=p2==NULL?p1:p2;//标记结尾空白
if(0==flag){//标记开头为空白
flag=1;
p2=p1;
}elseif(2==flag){//中间空白
*(p2++)=*p1;
}
}else{
if(1==flag||flag==2){//开头空白结束标志
*(p2++)=*p1;
flag=2;
}elseflag=-1;//开头无空白
p3=NULL;//清除结尾空白
}
p1++;
}
//标记结尾
if(p3!=NULL)*p3='\0';
elseif(p2!=NULL)*p2='\0';
returnstr;
}