Fonction strcmp()
Fermé
souzen
Messages postés
41
Date d'inscription
dimanche 12 octobre 2008
Statut
Membre
Dernière intervention
5 janvier 2009
-
29 oct. 2008 à 22:59
blastrox - 27 janv. 2011 à 12:24
blastrox - 27 janv. 2011 à 12:24
A voir également:
- Excel strcmp
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Fonction remplacer word - Guide
- Fonction ms dos non valide - Forum Windows 8 / 8.1
4 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
30 oct. 2008 à 00:11
30 oct. 2008 à 00:11
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
souzen
Messages postés
41
Date d'inscription
dimanche 12 octobre 2008
Statut
Membre
Dernière intervention
5 janvier 2009
26
29 oct. 2008 à 23:11
29 oct. 2008 à 23:11
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
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
29 oct. 2008 à 23:07
29 oct. 2008 à 23:07
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 ;)