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 :

Rechercher la xième occurrence d'un caractère avec strchr


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut Rechercher la xième occurrence d'un caractère avec strchr
    Bonjour,

    Je voudrais savoir si il est possible avec strchr de rechercher la xième occurence d'un caractère.

    J'ai par exemple :

    Merci '\t' pour ce bon repas '\t' et encore bravo pour cette soirée.

    J'aimerais remplacer le second '\t' par '\0', est-ce possible avec strchr ?

    Merci d'avance.

    beegees

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Salut !


    Oui c'est tout à fait possible, il te suffit d'utiliser un pointeur temporaire et un compteur et une boucle. A chaque tour de boucle si le compteur n'est pas à la bonne valeur (numéro d'occurrence) tu incrémentes ton pointeur temporaire ce qui te permet de te placer au caractère suivant par rapport à celui que tu viens de trouver, ce qui te permet une nouvelle recherche sur la même chaîne.

    Exemple :

    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
    18
    19
    #include <stdio.h>
    #include <string.h>
     
     
    int main (void)
    {
       char * str = "Merci pour ce repas !\n";
       char * tmp = str;
       int count = 0;
     
       while ((tmp = strchr (tmp, 'r')) != NULL)
       {
          count++;
          tmp++;
       }
       printf ("Il y a %d lettres 'r' dans la chaine !\n", count);
     
       return 0;
    }
    Le reste tu devrais facilement le deviner
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Salut Franck,

    Un super grand merci pour cette très utile fonction qui pourrait me servir pour d'autres programmes et pourquoi pas pour mon examen.

    C'est très utile et ça me permet de encore mieux comprendre les pointeurs.

    Respect !

    Merci encore pour tout.
    beegees

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

Discussions similaires

  1. [Toutes versions] Confusion de résultats dans recherche des occurrences d'une valeur avec Find sur des dates
    Par iperkut dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/11/2011, 19h07
  2. rechercher dans une chaine de caractère, un caractère avec un tant que
    Par levasseur62 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 16/01/2011, 17h02
  3. Recherche du caractère % avec un LIKE
    Par pdz74 dans le forum DB2
    Réponses: 5
    Dernier message: 08/09/2008, 17h53
  4. Réponses: 7
    Dernier message: 25/04/2008, 22h36
  5. Réponses: 2
    Dernier message: 06/12/2002, 07h50

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