Fonction strcmp()

Bonjour,
Aidez moi a faire ce petit programme,il s'agit de definir une fonction strcmp() qui permet de comparer deux chaines de caractères selon l'ordre alphabétique
la fonction doit retourner:
-un nombre negatif quelconque si la 1ere chaine precède la 2eme en ordre alphabétique
-0 si les deux chaines sont egales
-un nombre positif quelconque si ma 1ere chaine est superieur a la 2eme
N.B:T1<T2 si les deux chaines commencent par les memes caractères(0 ou plusieurs) et à un certain moment on trouve dans T1 un caractère inférieur a celui de T2.
s'il vous plait aidez moi a faire cette fonction
j'ai plusieurs fonction a faire et je risque de ne pas avoir assez de temps pr tous
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  1. Contributeur
    Re,
    Je t'ai fait un petit code vite fait. J'espère que ça te conviendra.
    int comp(char *p1, char *p2){
        int ret;
        while(*p1==*p2 && *p1 && *p2) p1++,p2++;
        if(!(ret=*p1-*p2)) return 0;
        return ret>0?1:-1;
    }
    
    int main(void){
        char mot1[MAX],mot2[MAX];
        printf("mot1 : ");
        fgets(mot1,sizeof mot1,stdin);
        printf("mot2 : ");
        fgets(mot2,sizeof mot2, stdin);
        printf("comp=%d\n",comp(mot1,mot2));
        return 0;
    }
    

    Cdlt
    4
    1. #include <stdio.h>
      #include <stdlib.h>
      #include <string.h>

      int main()
      {
      short resultat;
      char mot1[26];
      char mot2[26];

      printf("Entrez deux mots \n");
      printf("Mot Numero 1 :");
      fflush(stdin);
      scanf("%s", &mot1);
      printf("Mot Numero 2 :");
      fflush(stdin);
      scanf("%s", &mot2);

      resultat = strcmp(mot1,mot2);
      printf(" Valeur du resultat : %hd\n", resultat); // afficher le resulat pour savoir la valeur !

      if(resultat<0)
      {
      printf("Ordre Alphabetique : \n");
      printf("( 1 ) Mot1 : %s\n", mot1);
      printf("( 2 ) Mot2 : %s\n", mot2);
      }

      else if (resultat==0)
      {
      printf("Ordre Alphabetique : \n");
      printf("( 1 ) Mot1 : %s\n", mot1);
      printf("( 1 ) Mot2 : %s\n", mot2);
      printf("Ils sont identiques\n");
      }

      else
      {
      printf("Ordre Alphabetique : \n");
      printf("( 1 ) Mot1 : %s\n", mot2);
      printf("( 2 ) Mot2 : %s\n", mot1);
      }
      }

      Voilà un bout de code simplifier qui pourra peut être t'aider et comprendre ;)
      0
      1. bon pour lalgorithme, il faut comparer le code ascii des deux premieres lettres des deux chaines de caractères jusqu'à ce qu'on trouve un code ascci inferieur ou superieur a l'autre
        par exemple: portrait et portable
        il commence par les memes lettres (port)
        mais dans la 5eme lette on a (a<r)
        donc portable<portrait
        je trouve des difficultés de rediger ca en langage C
        1
        1. salut..
          faites au moin les decl,les lectures et des petits test..
          @
          0
      2. Contributeur
        Salut,
        Si tu veux qu'on t'aide, il faudrait commencer par poster le code que tu as fait, ou le début d'algorithme et nous dire ce qui bloque.
        Cdlt
        0