- /*
- 去掉字符串首尾的 \\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;
- }
- //该片段来自于http://www.codesnippet.cn/detail/061120136936.html
来源: http://www.codesnippet.cn/detail/061120136936.html