Как разделить строки с помощью strtok() в программировании на C?

Kak Razdelit Stroki S Pomos U Strtok V Programmirovanii Na C



Разделение строк важен по разным причинам, таким как обработка текста, анализ данных или синтаксический анализ, и язык программирования C предлагает множество способов решения этой задачи. Однако самая популярная функция C, которая позволяет разделяющая строка на несколько токенов с помощью указанного разделителя стрток() . Будучи библиотечной функцией, она доступна в стандартной библиотеке C, которая поддерживает операции со строками.

Как работает функция strtok()?

Чтобы разделить строку с помощью стрток() , сначала нужно понять, как это работает. стрток() считывает входную строку символ за символом, пока не встретит разделитель. Как только разделитель найден, стрток() заменяет его нулевым символом ‘\0’, эффективно разделяя исходную строку на две части. Затем функция возвращает указатель на первый символ строки. стрток() синтаксис функции:

стрток ( уголь * ул , константа уголь * я делюсь ) ;

стрток() Функция принимает два аргумента — указатель на первый токен в наборе токенов и строку, содержащую символы-разделители. Он возвращает указатель на следующий токен, который начинается сразу после разделителя, разделяющего последний токен. Он возвращает NULL, если маркеров больше нет.







Как разделить строки с помощью Strtok() в программировании на C?

Вот пример использования стрток() разделить строку:



#include

#include

инт основной ( ) {

уголь вход [ ] '=' 'Линукс, подсказка' ;

уголь * жетон ;

жетон '=' стрток ( вход , ',' ) ;

пока ( жетон '=' НУЛЕВОЙ ) {

printf ( '%s \n ' , жетон ) ;

жетон '=' стрток ( НУЛЕВОЙ , ',' ) ;

}

возвращаться 0 ;

}

В приведенном выше примере мы сначала объявляем указатель на char. Затем мы используем стрток() чтобы разбить входную строку на токены. Первый звонок стрток() принимает два аргумента: входную строку и строку-разделитель «,». Первый токен, «Linux», — это тот, который стрток() возвращается как указатель на . Затем мы используем цикл while для перебора входной строки, используя стрток() с указателем NULL, чтобы продолжить разделение оставшихся токенов. Строка-разделитель снова передается в качестве аргумента стрток() для обозначения символов-разделителей.



Выход





Ограничения функции Strtok()

1: изменяет исходную строку

стрток() функция не возвращает копию строки; вместо этого он изменяет исходную строку. Поэтому, если вам нужно иметь неизмененную версию строки после ее разделения, вы должны сделать копию исходной строки перед вызовом стрток() .



2: асинхронный

Одно существенное ограничение стрток() заключается в том, что его можно использовать только для одной строки за раз. Другими словами, вы не можете использовать его для токенизации нескольких строк одновременно.

3: Ограниченная мощность

Другое потенциальное ограничение заключается в том, что стрток() имеет ограниченную способность обрабатывать повторяющиеся разделители. Например, если в вашей строке есть последовательные пробелы между словами, стрток() рассматривает его как один разделитель. Чтобы справиться с такими случаями, вам придется использовать другой подход.

Заключение

стрток() function — очень полезная функция для разделения строк в программировании на C. Он принимает входную строку и строку-разделитель и возвращает указатель на первый токен, найденный во входной строке. стрток() является деструктивным, поэтому, если вам нужно сохранить целостность исходной строки, рекомендуется вместо этого создать ее дубликат. Теперь, когда вы знаете, как это сделать, вы можете разрезать любую нить на более мелкие части для обработки.