Это трюк, который я часто использую для удаления новых строк в конце строк пользовательского ввода.
if ((ln = strlen (str)) > 0)
if (str[ln-1] == '\n')
str[ln-1] = '\0';
Вы можете точно тем же способом избавиться от .
в конце строки:
size_t ln;
char str[] = "Hello there.";
if ((ln = strlen (str)) > 0)
if (str[ln-1] == '.')
str[ln-1] = '\0';
Если во входном формате также есть символ новой строки, вам понадобится небольшое изменение:
size_t ln;
char str[] = "Hello there.\n";
if ((ln = strlen (str)) > 1)
if (str[ln-2] == '.')
strcpy (&(str[ln-2]), "\n");