2010-07-15 3 views
7

Dans c si je voulais chercher une chaîne pour un caractère particulier, je peux juste faire ce qui suitExiste-t-il une version à plusieurs caractères de strchr() dans les bibliothèques C standard?

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

mais si je veux rechercher plus d'un caractère (ou une plage de caractères), par exemple « tout chiffre". Je sais que je pouvais faire quelque chose comme

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

if(p){ 
    ... 

supposant une etc. chaîne correctement terminée, mais est-il une fonction de bibliothèque standard qui offre déjà cette fonctionnalité (je l'espère plus en toute sécurité)

Répondre

18

Qu'en est-strpbrk? On dirait que cela correspond à votre facture.

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

« Renvoie un pointeur sur la première occurrence dans str1 de l'un des personnages qui font partie de str2, ou un pointeur NULL s'il n'y a pas des allumettes. »

EDIT: Lien vers un site C++, mais strpbrk fait partie de la bibliothèque C standard.

+0

Merci. Je pense que c'est juste ce dont j'ai besoin. – Vagnerr

+0

+ 1- excellente réponse. Parfaitement adapté à la facture et dans les limites de l'OP. –

Questions connexes