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. 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
      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