IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

La fonction strchr()


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 110
    Par défaut La fonction strchr()
    Bonjour, j'essaie de bien comprendre la fonction strchr() mais elle m'embete un peu.

    Voila la fonction recherche les caractéres aprés le "x" or j'aimerai si possible rechercher dans chaine si le caractére x existe dans la chaine et si possible afficher le caractére avant le x


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    char chaine[] = "Texte de test";
    char *recherche;
    int i;
    int nb_chaine=0;
    nb_chaine=strlen(chaine);
     
    recherche=strchr(chaine,'x');
     
    	if (recherche != NULL)
    	{
    		printf("Caractere existant\n");
    		for (i=0;i<nb_chaine;i++)
    		{
    			printf("%s",recherche[i-1]); //J'essaie d'afficher le caractére juste avant "x"
    		}
     
    	}
    Je ne sais pas comment parcourir la chaine dans la boucle afin d'afficher le caractére avant 'x'

    Merci à vous

  2. #2
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Inutile de parcourir la chaine pour retrouver la position de 'x', puisque tu as son adresse recherche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    char chaine[] = "Texte de test";
    char *recherche=strchr(chaine,'x');
    if (recherche != NULL)
       // il existe un 'x'
       if(recherche >chaine)
           // et ce n'est pas le premier caractère
           printf("%c\n",*(recherche-1) ); // afficher le caractère qui le précède
       else  printf("Le caractère est en tête\n") ;
    else  printf("Le caractère est absent\n");

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 110
    Par défaut
    aa oui j'ai compris je vous remercie !!!

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Salut !

    1) Pour afficher un caractère (fonction printf), il ne faut pas utiliser %s mais %c. Le man ici. Il n'y a pas lieu de passer par une boucle pour afficher un caractère.

    2) Je ne comprends pas ce qu'est censée faire ta boucle. En plus, le crash est certain. Ca a l'air d'être du pifomètre.

    Voici la man de strchr : ici. La fonction renvoie NULL si elle n'a pas trouvé le caractère. Autrement, elle renvoie l'adresse où se trouve le caractère.
    A partir de là, il faut tester également si le caractère ne se trouve pas au tout début de la chaîne, car si tu veux afficher le caractère précédent, tu sors forcément de la chaîne et il y a un risque de crash.
    Si tout est bon, un coup de printf en utilisant %c. Et l'affaire est réglée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec la fonction strchr
    Par Bahan dans le forum C
    Réponses: 6
    Dernier message: 19/05/2006, 20h04
  2. Réponses: 12
    Dernier message: 14/06/2004, 13h06
  3. Implémentation des fonctions mathématiques
    Par mat.M dans le forum Mathématiques
    Réponses: 9
    Dernier message: 17/06/2002, 16h19
  4. fonction printf
    Par ydeleage dans le forum C
    Réponses: 7
    Dernier message: 30/05/2002, 11h24
  5. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo