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

std::strpbrk

Материал из cppreference.com
< cpp‎ | string‎ | byte
 
 
 
Однобайтовые строки с завершающим нулём
Функции
Манипуляции с символами
Преобразование в числовые форматы
(C++11)(C++11)
(C++11)(C++11)
Манипуляции со строками
Проверка строки
Манипуляции с памятью
Разное
 
Определено в заголовочном файле <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 слов

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

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