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 имеет тип 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

См. также

strcspn
возвращает длину максимального начального сегмента, состоящего
только из символов, отсутствующих в другой строке байтов
(функция)
strchr
находит первое вхождение символа
(функция)
strtokstrtok_s
(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

Spec-Zone.ru

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