[C] Pb avec la fonction strchr

Résolu
B@|-|@N Messages postés 386 Statut Membre -  
 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
--
Close the World.||.txen eht nepO

2 réponses

  1. 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
  2. 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