[C] Pb avec la fonction strchr

Résolu
B@|-|@N Messages postés 386 Date d'inscription   Statut Membre Dernière intervention   -  
 lawl- -
Bonjour à toutes et à tous.

j'ai un tit problème avec la fonction strchr de C.
Voici le proto de cette fonction :

char *strchr(char *str, int ch);

Je ne comprends pas pourquoi le caractère que l'on recherche est un entier X_X.

Imaginons la chaine suivante : "j'adore _ comme caractère!".
je veux chercher la position du "_". Comment fais-je ?
#include <stdio.h>
#include <string.h>

void main()
{
        char *pLoc;
        char *pChaineQuelconque = "j'adore _ comme caractère";

        pLoc = strchr(pChaineQuelconque, "_");

        printf("la position de _ est : %d", pLoc);
}

Si quelqu'un a des explications, moi je nage là XD.

Bahan
A voir également:

2 réponses

lawl-
 
strchr renvoie un pointeur. Tu ne peux pas obtenir la position de '_' dans ta chaine avec l'instruction:
printf("la position de _ est : %d", pLoc);

Pour avoir la position de ton caractere recherché, il faudrait plutôt avoir l'instruction:
printf("la position de _ est : %d", pLoc-pChaineQuelconque+1);
0
pom
 
Salut, int ou char c'est la même chose.

Tu as écrit :
pLoc = strchr(pChaineQuelconque, "_");


non car "_" est une string. Tu dois écrire :

pLoc = strchr(pChaineQuelconque, '_');
-1