Я предполагаю под вставкой, что вы имеете в виду дисплей.
С этим предположением я также предполагаю, что всякий раз, когда формируются tmp_ptr-> name и tmp_ptr-> lname, весь их буфер заполняется пробелами, и только в конце есть NUL-терминатор ('\0'
).
Где бы они ни создавались, вам нужно отрубить все лишние пробелы, поставив '\0'
с первого взгляда на все пробелы. Вероятно, разумным подходом было бы работать в обратном направлении, чтобы учесть пробелы в именах.
int i;
for (i = BUFFER_LENGTH - 1; i > -1; --i)
{
if (value[i] != ' ')
{
if (i + 1 != BUFFER_LENGTH)
{
value[i + 1] = '\0';
}
break;
}
}
Это можно сделать и с необработанным указателем, и предполагается, что это передается через функцию, подобную:
void rtrim(char *value, const int BUFFER_LENGTH);