std::strpbrk
Материал из cppreference.com
Определено в заголовочном файле <cstring> | ||
constchar* strpbrk(constchar* dest, constchar* breakset ); | ||
char* strpbrk( char* dest, constchar* breakset ); | ||
Сканирует строку байтов с нулевым завершающим символом, на которую указывает dest, на предмет любого символа из строки байтов с нулевым завершающим символом, на которую указывает breakset, и возвращает указатель на этот символ.
Содержание |
[править]Параметры
dest | — | указатель на строку байтов с нулевым завершающим символом, подлежащую анализу |
breakset | — | указатель на строку байтов с нулевым завершающим символом, содержащую искомые символы |
[править]Возвращаемое значение
Указатель на первый символ в dest, который также находится в breakset, или нулевой указатель, если такого символа не существует.
[править]Примечание
Название означает "string pointer break - указатель на разрыв строки", поскольку она возвращает указатель на первый символ-разделитель ("разрыв").
[править]Пример
Запустить этот код
#include <cstring>#include <iomanip>#include <iostream> int main(){constchar* str ="hello world, friend of mine!";constchar* sep =" ,!"; unsignedint 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 |