C语言去掉字符串首尾的 空格 换行 回车
/* 去掉字符串首尾的 \x20 \r \n 字符 by sincoder */ void clean_string(char *str) { char *start = str - 1; char *end = str; char *p = str; while(*p) { switch(*p) { case ' ': case '\r': case '\n': { if(start + 1==p) start = p; } break; default: break; } ++p; } //现在来到了字符串的尾部 反向向前 --p; ++start; if(*start == 0) { //已经到字符串的末尾了 *str = 0 ; return; } end = p + 1; while(p > start) { switch(*p) { case ' ': case '\r': case '\n': { if(end - 1 == p) end = p; } break; default: break; } --p; } memmove(str,start,end-start); *(str + (int)end - (int)start) = 0; }