std::strpbrk
Материал из cppreference.com
Определено в заголовочном файле <cstring>
|
||
const char* strpbrk( const char* dest, const char* breakset ); |
||
char* strpbrk( char* dest, const char* breakset ); |
||
Сканирует строку байтов с нулевым завершающим символом, на которую указывает dest, на предмет любого символа из строки байтов с нулевым завершающим символом, на которую указывает breakset, и возвращает указатель на этот символ.
Содержание |
[править] Параметры
dest | — | указатель на строку байтов с нулевым завершающим символом, подлежащую анализу |
breakset | — | указатель на строку байтов с нулевым завершающим символом, содержащую искомые символы |
[править] Возвращаемое значение
Указатель на первый символ в dest, который также находится в breakset, или нулевой указатель, если такого символа не существует.
[править] Примечание
Название означает "string pointer break - указатель на разрыв строки", поскольку она возвращает указатель на первый символ-разделитель ("разрыв").
[править] Пример
Запустить этот код
#include <cstring> #include <iomanip> #include <iostream> int main() { const char* str = "hello world, friend of mine!"; const char* sep = " ,!"; unsigned int cnt = 0; do { str = std::strpbrk(str, sep); // находит разделитель std::cout << std::quoted(str) << '\n'; if (str) str += std::strspn(str, sep); // пропускает разделитель ++cnt; // инкрементирует количество слов } while (str && *str); std::cout << "Есть " << cnt << " слов\n"; }
Вывод:
" world, friend of mine!" ", friend of mine!" " of mine!" " mine!" "!" Есть 5 слов
[править] Смотрите также
возвращает длину максимального начального сегмента, который состоит только из символов, не найденных в другой строке байтов (функция) | |
находит следующий маркер в строке байтов (функция) | |
находит первое вхождение символа (функция) | |
находит первое местоположение любого широкого символа из одной широкой строки, в другой широкой строке (функция) | |
Документация C по strpbrk
|