Пространства имён
Варианты
Действия

std::strtok

Материал из cppreference.com
< cpp‎ | string‎ | byte

Определено в заголовочном файле <cstring>
char* strtok( char* str, const char* delim );
Поиск следующего маркера в нулевым байтом строки, на которую указывает str. Сепаратор символов, определенных нулевым байтом строки, на которую указывает delim.
Оригинал:
Finds the next token in a null-terminated byte string pointed to by str. The separator characters are identified by null-terminated byte string pointed to by delim.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Если str != NULL, функция ищет первый символ, который является не сепаратор. Этот символ начала маркер. Тогда функция ищет первый символ-разделитель. Этот символ конца маркер. Функция завершается и возвращает NULL если конец str встречается до конца маркер не найдено. В противном случае, указатель конца маркер сохраняется в статическом месте для последующих вызовов. Этот символ заменяется на NULL-символа и функция возвращает указатель на начало' маркера.
Оригинал:
If str != NULL, the function searches for the first character which is not separator. This character is the beginning of the token. Then the function searches for the first separator character. This character is the end of the token. Function terminates and returns NULL if end of str is encountered before end of the token is found. Otherwise, a pointer to end of the token is saved in a static location for subsequent invocations. This character is then replaced by a NULL-character and the function returns a pointer to the beginning of the token.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Если str == NULL, функция продолжается, откуда он ушел в предыдущем вызове. Поведение такое же, как если бы ранее сохраненный указатель передается в качестве str.
Оригинал:
If str == NULL, the function continues from where it left in previous invocation. The behavior is the same as if the previously stored pointer is passed as str.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

Содержание

[править] Параметры

str -
указатель с нулевым байтом строки для маркировки
Оригинал:
pointer to the null-terminated byte string to tokenize
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
delim -
указатель с нулевым байтом строку, идентифицирующую разделители
Оригинал:
pointer to the null-terminated byte string identifying delimiters
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

[править] Возвращаемое значение

Указатель на начало маркера, если конец строки не встречается. В противном случае возвращает NULL.
Оригинал:
Pointer to the beginning of a token if the end of string has not been encountered. Otherwise returns NULL.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

[править] Примечание

Функция не является потокобезопасным.
Оригинал:
The function is not thread safe.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

[править] Пример

#include <cstring>
#include <iostream>
 
int main()
{
    char input[100] = "A bird came down the walk";
    char *token = std::strtok(input, " ");
    while (token != NULL) {
        std::cout << token << '\n';
        token = std::strtok(NULL, " ");
    }
}

Вывод:

A
bird
came
down
the
walk

[править] См. также

C documentation for strtok