strpbrk
From cppreference.net
|
Определено в заголовочном файле
<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 * . - Иначе поведение не определено.
-
Если
Поведение не определено, если либо dest или breakset не является указателем на байтовую строку, завершающуюся нулевым символом.
Содержание |
Параметры
| dest | - | указатель на анализируемую нуль-терминированную байтовую строку |
| breakset | - | указатель на нуль-терминированную байтовую строку, содержащую символы для поиска |
Возвращаемое значение
Указатель на первый символ в dest , который также присутствует в breakset , или нулевой указатель, если такого символа не существует.
Примечания
Название расшифровывается как "string pointer break" (указатель разрыва строки), поскольку функция возвращает указатель на первый из символов-разделителей ("break").
Пример
Запустить этот код
#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); // найти разделитель if(str) str += strspn(str, sep); // пропустить разделитель ++cnt; // увеличить счетчик слов } while(str && *str); printf("There are %u words\n", cnt); }
Вывод:
There are 5 words
Ссылки
- Стандарт C23 (ISO/IEC 9899:2024):
-
- 7.24.5.4 Функция strpbrk (стр: TBD)
- Стандарт C17 (ISO/IEC 9899:2018):
-
- 7.24.5.4 Функция strpbrk (стр.: TBD)
- Стандарт 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++ documentation
для
strpbrk
|
|