strpbrk
Определено в заголовке <string.h> | ||
|---|---|---|
char *strpbrk( const char *dest, const char *breakset ); | (1) | |
/*QChar*/ *strpbrk( /*QChar*/ *dest, const char *breakset ); | (2) | (с C23) |
1 ) Сканирует строку байтов с нулевым завершением, на которую указывает
dest, на наличие любого символа из строки байтов с нулевым завершением, на которую указывает breakset, и возвращает указатель на этот символ.
2) Универсальная по типу функция, эквивалентная (1). Пусть
T — тип неопределённого объекта символа. - Если
destимеет типconst T*, тип возвращаемого значения —const char*. - В противном случае, если
destимеет типT*, тип возвращаемого значения —char*. - В противном случае, поведение не определено.
(strpbrk) или указатель на функцию), фактическое объявление функции (1) становится видимым.Поведение не определено, если либо dest , либо breakset не является указателем на строку байтов с нулевым завершением.
Параметры
| dest | - | указатель на строку байтов с нулевым завершением для анализа |
| breakset | - | указатель на строку байтов с нулевым завершением, содержащую символы для поиска |
Возвращаемое значение
Указатель на первый символ в dest, который также присутствует в breakset, или нулевой указатель, если такого символа нет.
Примечания
Название означает «указатель на строку разрыва», так как оно возвращает указатель на первый из разделительных символов («разрыв»).
Пример
#include <stdio.h>
#include <string.h>
int main(void)
{
const char* str = "hello world, friend of mine!";
const char* sep = " ,!";
unsigned int cnt = 0;
do {
str = strpbrk(str, sep); // find separator
if(str) str += strspn(str, sep); // skip separator
++cnt; // increment word count
} while(str && *str);
printf("There are %u words\n", cnt);
}Вывод:
There are 5 words
Ссылки
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.24.5.4 Функция strpbrk (стр. 368)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.21.5.4 Функция strpbrk (стр. 331)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
- 4.11.5.4 Функция strpbrk
См. также
| возвращает длину максимального начального сегмента, состоящего только из символов, отсутствующих в другой строке байтов (функция) |
|
| находит первое вхождение символа (функция) |
|
|
(C11) | находит следующий токен в строке байтов (функция) |
Документация C++ для strpbrk |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/string/byte/strpbrk