in C una versione potrebbe essere questa

codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char * trim ( char * str ) {

	unsigned int i, p = 0;	
	unsigned int len = strlen( str );

	while ( len > 0 && isspace( str[ len - 1 ] ) ) len--;

	while ( p < len && isspace ( str[ p ] ) ) p++;
	
	for ( i = 0; i < len - p; i++ )	str[ i ] = str[ i + p ];
	str[ i ] = '\0';
	
	return str;
	
}
in questa versione str viene modificata e la funzione torna un puntatore alla stringa se gli spazi a destra e sinistra