Reperer variable dans une chaine (C)

malekith25 -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
voila mon problème, j'ai une variable (qui contient une lettre),et jaimerais savoir s'il est possible de la rechercher dans une chaine.

ex (attention sa ne marche pas)

bonnelettre=strchr(Mot,Lettre); // je recherche ma lettre dans le mot si elle n'y est pas bonnelettre=0
if (bonnelettre != NULL)
{
printf("gagner");// si bonnelettre a été trouver écrire gagner
}
else
{
printf("louper")// sinon écrire louper
}

voila je veut sa mais que sa marche ^^ (si c'est possible)
Configuration: Windows XP
Firefox 3.5.7

5 réponses

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Bonjour,

    C'est la bonne façon de faire. Après, il faut implémenter correctement.

    #include <stdio.h>
    #include <string.h>
    
    int main(void) {
        char *chaine="abcde";
        char *p=strchr(chaine,'e');
    
        if (p!=NULL) {
            puts("caractere trouve");
        }
        else {
            puts("caractere non trouve");
        }
    
        return 0;
    }
    
    0
  2. malekith25
     
    salut,

    je pense que tu n'as pas compris car je ne vois aucune variable dans ton code.

    perso moi je veux que a la place de ton 'd' il y est une variable, c'est a dire une lettre que j'ai demander a l'utilisateur.

    merci.
    0
    1. lhommeneavantsonpere
       
      moi je pense k il tas bien compris

      ds son programme
      char *p=strchr(chaine,'e'); *toi tu demanderas a l utilisateur de saisir un charatere ,tu le lis et voila le coup eest joue
      0
  3. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Si si j'ai très bien compris, mais j'espérais que t'arriverais à adapter...
    #include <stdio.h>
    #include <string.h>
    
    int main(void) {
        char *chaine="abcde";
        char *p;
        int var;
         
        printf("choix caractère : "); fflush(stdout);
        var=getchar();  
        p=strchr(chaine,var);
    
        if (p!=NULL) {
            puts("caractere trouve");
        }
        else {
            puts("caractere non trouve");
        }
    
        return 0;
    }
    
    


    Et si tu veux modifier la chaîne de caractère "abcde", c'est possible aussi, il suffit d'utiliser fgets.

    Cdlt,
    0
  4. malekith25
     
    Désolé je débute sa fait - d'une semaine j'ai encore un peu de mal ^^

    merci je vais essayer tout de suite.
    0
    1. malekith25
       
      Salut,

      bon je vais faire le chiant la (desole ^^') mais je ne comprends pas du tout ...
      0
      1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847 > malekith25
         
        Ne soit pas désolé, c'est le but du forum ;-))).
        Dis ce que tu ne comprends pas dans mon code et je t'expliquerai.
        En tout cas, le code du dessus fonctionne bien.
        0
      2. malekith25 > fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Je ne comprends pas sa:

        char *chaine="abcde";
        // a la place de "abcde" je dois bien mettre mon mot ? "mais si lui aussi est une variable (une chaine).

        char *p; // pointeur ? ( question peut etre con mais j'ai encore du mal avec sa^^')
        int var;

        printf("choix caractère : "); fflush(stdout);
        var=getchar(); // et la que se passe t-il?
        p=strchr(chaine,var);
        0
      3. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847 > malekith25
         
        Si tu veux mettre une variable dans chaine, il faut faire ceci :
        char chaine[16]; /*déclaration du tableau chaine*/

        printf("entrez votre chaine : "); fflush(stdout);
        scanf("%15s",chaine); /*l'utilisateur pourra entrer sa chaîne dans le tableau*/

        char*p; /*oui cela s'agit d'un pointeur*/

        var=getchar(); /*cela prendra un caractère du buffer clavier. En gros, cela permettra à l'utilisateur de taper un caractère*/
        0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. malekith25
     
    sinon je propose sa mais je ne comprends pas pourquoi sa marche pas s'il ya une bonne lettre:

    for (i=0;i<=5;i++)
    {
    if(maLettre==Mot[i])
    {
    printf("il y a un %s\n",maLettre);
    }
    else
    {
    printf("pas bon\n");
    }
    }
    0