Namespaces
Variants

std:: strpbrk

From cppreference.net
Definido en el encabezado <cstring>
const char * strpbrk ( const char * dest, const char * breakset ) ;
char * strpbrk ( char * dest, const char * breakset ) ;

Escanea la cadena de bytes terminada en nulo apuntada por dest en busca de cualquier carácter de la cadena de bytes terminada en nulo apuntada por breakset , y devuelve un puntero a ese carácter.

Contenidos

Parámetros

dest - puntero a la cadena de bytes terminada en nulo que se va a analizar
breakset - puntero a la cadena de bytes terminada en nulo que contiene los caracteres a buscar

Valor de retorno

Puntero al primer carácter en dest , que también está en breakset , o puntero nulo si no existe tal carácter.

Notas

El nombre significa "puntero de cadena de ruptura", porque devuelve un puntero al primero de los caracteres separadores ("break").

Ejemplo

#include <cstring>
#include <iomanip>
#include <iostream>
int main()
{
    const char* str = "hello world, friend of mine!";
    const char* sep = " ,!";
    unsigned int cnt = 0;
    do
    {
        str = std::strpbrk(str, sep); // encontrar separador
        std::cout << std::quoted(str) << '\n';
        if (str)
            str += std::strspn(str, sep); // saltar separador
        ++cnt; // incrementar contador de palabras
    } while (str && *str);
    std::cout << "Hay " << cnt << " palabras\n";
}

Salida:

" world, friend of mine!"
", friend of mine!"
" of mine!"
" mine!"
"!"
Hay 5 palabras

Véase también

devuelve la longitud del segmento inicial máximo que consiste
únicamente en caracteres no encontrados en otra cadena de bytes
(función)
encuentra el siguiente token en una cadena de bytes
(función)
encuentra la primera ocurrencia de un carácter
(función)
encuentra la primera ubicación de cualquier carácter ancho en una cadena ancha, en otra cadena ancha
(función)