после принятия ответа
принятый ответ кажется слишком сложным. asctime()
возвращает указатель на массив размером фиксированный размером 26 в виде:
> Sun Sep 16 01:03:52 1973\n\0
> 0123456789012345678901234455
char *timetext = asctime(some_timeptr);
timetext[24] = '\0'; // being brave (and foolish) with no error checking
Общее решение для удаления потенциала (трейлинг) '\n'
, который более устойчив к необычным струнам, будет:
char *some_string = foo();
char *p = strchr(str, '\n'); // finds first, if any, \n
if (p != NULL) *p = '\0';
// or
size_t len = strlen(str);
if (len > 0 && str[len-1] == '\n') str[--len] = '\0';
str[strlen(str) - 1]
небезопасен до первого установления strlen(STR) > 0
.