清除字符串开头结尾除空白
修改原字符串
不能清除全角字符
/*
* 清除字符串开始结尾处的空白
* 修改原字符串
* */
static char* trim(char*str){
char* p1 = str,*p2 = NULL,*p3 = NULL;
int flag = 0;
while(*(p1) != '\0'){
if(isspace(*p1)){
if(p3 == NULL) p3 = p2 == NULL?p1:p2;//标记结尾空白
if(0 == flag) {//标记开头为空白
flag = 1;
p2 = p1;
}else if(2 == flag){//中间空白
*(p2++) = *p1;
}
}else {
if(1 == flag || flag == 2){//开头空白结束标志
*(p2++) = *p1;
flag = 2;
}else flag = -1;//开头无空白
p3 = NULL;//清除结尾空白
}
p1++;
}
//标记结尾
if(p3 != NULL) *p3 = '\0';
else if(p2 != NULL) *p2 = '\0';
return str;
}
您可能感兴趣的文章:PHP中用正则表达式清除字符串的空白用MySQL函数清除字符串首尾空白字符的方法用C语言判断字符是否为空白字符或特殊字符的方法