Fonction strcmp()
souzen
Messages postés
41
Date d'inscription
Statut
Membre
Dernière intervention
-
blastrox -
blastrox -
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
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
A voir également:
- Strcmp en c
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction somme excel - Guide
4 réponses
Re,
Je t'ai fait un petit code vite fait. J'espère que ça te conviendra.
Cdlt
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
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
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
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
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
#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 ;)
#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 ;)