Генерация редактирования текста программно в Android

Возможно, самое простое решение использует одну из моих любимых малоизвестных функций, strcspn() :

buffer[strcspn(buffer, "\n")] = 0;

Если вы хотите, чтобы она также обрабатывала '\r' (скажем, , если поток двоичный):

buffer[strcspn(buffer, "\r\n")] = 0; // works for LF, CR, CRLF, LFCR, ...

Функция подсчитывает количество символов до тех пор, пока оно не достигнет '\r' или '\n' (другими словами, он найдет первый '\r' или '\n'). Если он ничего не ударил, он останавливается на '\0' (возвращает длину строки).

Обратите внимание, что это отлично работает, даже если нет новой строки, поскольку strcspn останавливается на '\0'. В этом случае вся строка просто заменяет '\0' на '\0'.

13
задан Cœur 4 January 2019 в 13:36
поделиться