comment utiliser "strcmp"? - C - Programmation
Marsh Posté le 26-10-2003 à 21:39:29
man strcmp
PS : le débugger n'interviens que quand tu auras réussi a lancer ton premier programme C. Pour l'instant tu bloques sur la phase de compilation.
PPS : et si tu as du mal a comprendre le manuel de strcmp, voici l'info la plus important pour toi : strcmp sert à comparer des chaines de caractères ! Toi tu veux tester si 2 nombres sont égaux alors fait juste "if (val == pg)" !!!
Marsh Posté le 26-10-2003 à 21:42:44
val et pg sont des int, strcmp sert à comparer des chaînes de caractères et renvoit un int.
Marsh Posté le 26-10-2003 à 21:51:44
Merci beaucoup, ca marche, je n'oublierais pas maintenant que strcmp sert à comparer des chaines de caractères, et que la phase ou ça bloque, c pas le débugger, mais le compilateur
par contre j'ai une autre question, je remarque que mon prog marche, mais si je tape des lettres au lieu des nombres, ca marchera tjrs mais avec des résultats faux, donc est ce qu'il n'existerait pas une fonction ou une ligne à rajouter qui dirait que si l'utilisateur tape des lettre au lieu de nombres, un message s'afficher lui disant qu'on lui demandes de taper des chiffres et pas des lettres
Merci d'avance!!!
Marsh Posté le 26-10-2003 à 21:54:34
mais qu'est-ce qu'on vous apprend en classe?
Marsh Posté le 26-10-2003 à 21:59:56
Tu peux toujours tenter de saisir une chaîne avec gets() puis de la convertir ensuite avec un truc du genre atoi(), et si il y a une erreur bah...
Marsh Posté le 26-10-2003 à 22:02:33
cronos6 a écrit : Merci beaucoup, ca marche, je n'oublierais pas maintenant que strcmp sert à comparer des chaines de caractères, et que la phase ou ça bloque, c pas le débugger, mais le compilateur |
Bienvenu dans le monde merveilleux de la fonction scanf !
A mon avis, ne t'embète pas avec ça. C'est lourd à contourner et c'est d'un interet réduit de toute façon ( on n'utilises pas vraiment scanf pour les entrées utilisateur sauf dans l'enseignement )
Marsh Posté le 26-10-2003 à 21:35:42
j'ai un prog en c à faire, qui est :
-lire 100 valeurs entières, écrire la plus grande des valeurs et le nombre de fais ou cette plus grande valeur est apparue
voici ce que j'ai fait :
#include <stdio.h>
#include <string.h>
void main()
{
int pg, cpt, nbf, val;
//pg=plus grand, nbf=nombre de fois
printf("donner un nombre\n" );
scanf("%d",& pg);
cpt=1;
nbf=1;
do
{
printf("donner un nombre\n" );
scanf("%d", & val);
if(val>pg)
{
pg=val;
nbf=1;
}
else
{
if(strcmp(val, pg)==0) //si (val==pg)
{
nbf=nbf+1;
}
}
cpt=cpt+1;
}
while (cpt<5);
printf("le plus grand est: %d , il est apparu : %d\n", pg, nbf);
}
Le débugger me signale une erreur au niveau du "strcmp" l'erreur est : error C2664: 'strcmp' : cannot convert parameter 1 from 'int' to 'const char *'
j'ai mis en commentaire ce que j'ai trouvere en algo, en l'occurence si(val==pg)