Spec-Zone.ru › C

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 имеет тип constT*, возвращаемый тип — constchar*.
  • В противном случае, если dest имеет тип T*, возвращаемый тип — char*.
  • В противном случае поведение не определено.
Если определение макроса каждой из этих обобщённых функций подавлено для доступа к фактической функции (например, если используется (strpbrk) или указатель на функцию), становится видимым объявление фактической функции (1).

Поведение не определено, если 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); // 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

Ссылки

  • Стандарт 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

См. также

strcspn
возвращает длину максимального начального сегмента, состоящего
только из символов, отсутствующих в другой строке байтов
(функция)
strchr
находит первое вхождение символа
(функция)
strtokstrtok_s
(C11)
находит следующий токен в строке байтов
(функция)
Документация C++ для strpbrk

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/c/string/byte/strpbrk

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API