[C] probleme de chaînes de caractères

Bonjour, Voilà je voudrais faire une condition en comparant 2 chaines de caractères:

si la chaîne est égale à la chaîne "plus" : faire ça
si la chaîne est égale à la chaîne "moins" : faire ça

ce qui donnerait :

 if (strcmp(constat, plus) == 0)
         {
             tirageAleatoirePlus(aleatoire);
             }  
         else if (strcmp(constat, moins) ==0)  
         {
              tirageAleatoireMoins(aleatoire);
              }
         else
         {
             printf("vous etes cense dire 'plus' ou 'moins'");
             }


et voila ce que j'ai mis dans un .h

char constat[10], plus[]="plus", moins[]="moins";
long tirageAleatoirePlus(long aleatoire);
long tirageAleatoireMoins(long aleatoire);


mais lorsque je veux compiler il me met : " [Linker error] undefined reference to `strcmp(char*, char const*)' "

Si quelqu'un voit la solution

Merci
--
☻ ♪ ♫ I'm sorry, Mama. I never meant to hurt you. I never meant to make you cry, but tonight I'm cleanin' out my closet. ♫ ♪ ☻ 

7 réponses

  1. Salut,
    As tu inclus le header:string.h
    @+
    0
    1. 0uaip j'ai inclus tout ça puisque j'ai mes fonctions alentours qui marchent
      0
      1. J'ai legerement modifié ton code pour voir si cela compilait et marchait..j'ai pas eu de prb...
        Pas definie les 2 fonction mais bon à priori, le prb ne vient pas de là...
        #include<stdio.h>
        #include<string.h>
        long tirageAleatoirePlus(long aleatoire);
        long tirageAleatoireMoins(long aleatoire);
        int main()
        {char constat[10], plus[]="plus", moins[]="moins";
        for(;;)
        {printf("donner une chaine de caractere");
        scanf("%s",&constat);
        if (strcmp(constat, plus) == 0)
                 {printf("blabla");break;}
        else {
        		if (strcmp(constat, moins) ==0)  
                 
                     {printf("blibli") ;break;}
                      
                 	else
                 
                     printf("vous etes cense dire 'plus' ou 'moins'");
              }
        }
        getchar();       
        return 1;
        }
        0
        1. Modérateur
          Salut,
          j'ai inclus tout ça puisque
          T'en es sûr?
          lami20j@debian:~/trash$ cat ccm10.c
          #include<stdio.h>
          #include<string.h>
          
          int main()
          {
            char constat[10], plus[]="plus", moins[]="moins";
            printf("constat ? ");
            scanf("%s",constat);
          
            if (strcmp(constat, plus) == 0)
              printf("plus\n");
            else if (strcmp(constat, moins) ==0)
              printf("moins\n");
            else
              printf("vous etes cense dire 'plus' ou 'moins'\n");
            return 0;
          }
          lami20j@debian:~/trash$ gcc ccm10.c
          lami20j@debian:~/trash$ ./a.out
          constat ? plus
          plus
          lami20j@debian:~/trash$ ./a.out
          constat ? moins
          moins
          lami20j@debian:~/trash$ ./a.out
          constat ? aaaa
          vous etes cense dire 'plus' ou 'moins'
          lami20j@debian:~/trash$

          0
          1. a quoi sert le for(;;) ?

            0
            1. C'est pour reprendre la boucle si la personne n'a pas saisi soit plus soit moins...
              ainsi on lui redemande de resaisir constat tant qu'il n'a pas saisi plus ou moins....
              0
              1. Contributeur
                il faut lié avec la lib standard, libstdc++.a ou libc.a, à rajouter dans les options de compilation.
                quel est ton compilateur ?
                Quelle est la commande que tu utilise pour compiler ?
                0