2010-07-15 8 views
7

En c si quería buscar una cadena para un carácter particular que sólo puede hacer lo siguiente¿Hay una versión de caracteres múltiples de strchr() en las bibliotecas estándar de C?

char *p; 
p = (char *)strchr(buffer,'('); 
if(p){ 
    .... 

pero lo que si quiero buscar más de un carácter (o una serie de caracteres), por ejemplo, "cualquier dígito". Sé que podría hacer algo como

char *p=0; 
char *i; 
for(i=buffer;*i!='\0';i++){ 
    if(*i >= '0' && *i <=9){ 
     p=i; 
    } 
} 

if(p){ 
    ... 

asumiendo una cadena etc. terminado correctamente pero hay una función de biblioteca estándar que ya proporciona esta funcionalidad (esperemos que con mayor seguridad)

Respuesta

18

¿Qué hay de strpbrk? Parece que se ajusta a tu factura.

const char * strpbrk (const char * str1, const char * str2); 

"devuelve un puntero a la primera ocurrencia en str1 de cualquiera de los personajes que forman parte de str2, o un puntero nulo si no hay coincidencias."

EDITAR: Enlace es a un sitio de C++, pero strpbrk es parte de la biblioteca estándar de C.

+0

Gracias. Creo que eso es justo lo que necesito. – Vagnerr

+0

+ 1- excelente respuesta. Se adapta perfectamente a la factura y dentro de las limitaciones del OP. –

Cuestiones relacionadas