Reperer variable dans une chaine (C)

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. Contributeur
    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
    1. 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. 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
    2. Contributeur
      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
      1. 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. Salut,

          bon je vais faire le chiant la (desole ^^') mais je ne comprends pas du tout ...
          0
        2. Contributeur
          @malekith25Ne 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
        3. @fiddyJe 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
        4. Contributeur
          @malekith25Si 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
      2. 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