Trim in ANSI C

In questo tuttorial imparerete come creare le funzioni trim, trim_left e trim_right con ANSI C.

 
char *trim(char *str)
{
	char *out = str;
	out = trim_left(out);
	out = trim_right(out);
	return out;
}
 
char *trim_left(char *str)
{
     if(str[0] != ' ' || str[0] == '\0') return str;
     return trim_left(str++);
}
 
char *trim_right(char *str)
{
	int len = strlen(str) - 1;
	if(len == 0 || str[len] != ' ') return str;
	str[strlen(str)-1] = '\0';
	return trim_right(str);
}