[C] Pb avec la fonction strchr

Résolu/Fermé
B@|-|@N Messages postés 386 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 7 décembre 2007 - 19 mai 2006 à 16:54
 lawl- - 14 août 2011 à 04:51
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

2 réponses

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
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