Работал, что-то поменялось и вдруг перестало. Парадает на //1, если есть пробелы в конце, падает на //2 если в начале. Предпосылок падению не вижу, что не так?
char * trim(char * line)
{
size_t len = 0;
char * frontp = line - 1;
char * endp = NULL;
if (!(line))
return NULL;
if (line[0] == '\0')
return line;
len = strlen(line);
endp = line + len;
while (isspace(*(++frontp)));
while (isspace(*(--endp)) && endp != frontp);
if (line + len - 1 != endp)
{
*(endp + 1) = '\0'; //1
}
else
{
if (frontp != line && endp == frontp)
*line = '\0';
}
endp = line;
if (frontp != line)
{
while (*frontp)
*endp++ = *frontp++; //2
*endp = '\0';
}
return line;
}