Namespaces
Variants

std:: strpbrk

From cppreference.net
Определено в заголовке <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" (указатель разрыва строки), поскольку функция возвращает указатель на первый из символов-разделителей ("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 << "There are " << cnt << " words\n";
}

Вывод:

" world, friend of mine!"
", friend of mine!"
" of mine!"
" mine!"
"!"
There are 5 words

Смотрите также

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