C语言下去空格函数trim代码讲解
程序员文章站
2022-04-30 09:55:47
c语言下去空格函数trim代码讲解
void trim(char* str){
if(str==null)
return;
char *begin=str...
c语言下去空格函数trim代码讲解
void trim(char* str){ if(str==null) return; char *begin=str; while(*begin&&(unsigned char)*begin<=32) begin++; if(!*begin){ *str=0; return; } while(*str++=*begin++); str-=2; while((unsigned char)*str--<=32); *(str+2)=0; }
原文章去空格有些bug或者功能不全,比如str为null,没有过滤'\n'。 还有就是如果全是空白符的话,那么我看文章中q对应的是最后一个元素(q-=2后)。这时最后一个元素会在第一个元素前面,好怪哦。。。。。。,关键是后来继续执行后面的去空格时,会一直便利到,原字符串的第一个元素的前一个地址,会越界,结果不确定。。
解释下unsigned char的原因是因为汉子某个字节会大于128,如果不转那么变成负数了就会被跳过了
下一篇: 老人饮食 注意“十不贪”