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; }
 
  |