1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
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; }
|