[ C ] - prob de debutant

- prob de debutant [ C ] - C++ - Programmation

Marsh Posté le 01-05-2002 à 12:21:48    

Salut tlm en fait voici le code que j'ai tapé :  
 
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
void main()
{
char tab_mots[20][20], mot_lu[20];
int i=0,j=0,k=0;
 
/****************************************************/
/* Boucle qui enregistre les mots entrés au clavier */
/****************************************************/
for(i=0;mot_lu!="fin\0";i++)
 {
   gets(mot_lu);
   printf("\nheu? : %s", mot_lu);
   i++;
   }
getch();
 
}

 
en fait lorsque je tape fin, ca devrait sortir du prog, mais ca nesort pas !
j'ai essayer de changer le "fin" dans la condition en "fin\0"
ca marche pas non plus , j'ai essayer avec scanf aussi ca marche pasnon plus...
 
qqun peux m'eclairer??? merci d'avance !

Reply

Marsh Posté le 01-05-2002 à 12:21:48   

Reply

Marsh Posté le 01-05-2002 à 12:25:50    

hum une comparaison se fait pas comme ca sur les char *
 
fait plutot un strncmp()


---------------
Mes News
Reply

Marsh Posté le 01-05-2002 à 12:30:39    

ok v essayer tkx

Reply

Marsh Posté le 01-05-2002 à 12:31:17    

et pis regarde bien ce ke fait ton code je viens d evoir plusieurs trucs pas top top dedans relis bien ce k il fait :)
 
tu vas voir ca va te sauter au yeux :)


---------------
Mes News
Reply

Marsh Posté le 01-05-2002 à 12:33:32    

merci ca marche,  
hum... j'ai honte la  :lol:  :lol:

Reply

Marsh Posté le 01-05-2002 à 12:34:16    

j'ai remplacé par : for(i=0;strcmp(mot_lu,"fin" )!=0;i++)
 
et ca marche maintenant

 

[jfdsdjhfuetppo]--Message édité par SquiiiD le 01-05-2002 à 12:34:34--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 01-05-2002 à 13:02:45    

SquiiiD a écrit a écrit :

j'ai remplacé par : for(i=0;strcmp(mot_lu,"fin" )!=0;i++)
 
et ca marche maintenant  
 
 




 
hehe fait attention a ton i aussi ;)  si je ne m abuse tu l incremente 2 fois pour rien ;)  
 
et fait gaffe aussi a sa taille ;)  des k il depasseras la taille d un int je sais tu as de la marge mais bon ;)


---------------
Mes News
Reply

Marsh Posté le 01-05-2002 à 13:15:26    

encore un prob ( de fonction cette fois )  
 
en fait la fonction verif recois unechane de caractere, et renvoisu un entier (0, 1 ou 2)
 
mais je n'arrive pas a la fairemarcher il me sort tjrs des truc du genre 'cannot convert char to char) ou int to char bref je sais plus ou je doit mettre INT Ou CHAR :( je suis un peu embrouiller , ralala et jai une interro demain .. :/
 
voila le code ( mis a part la fonction le reste marche :  
 
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
void main()
{
char tab_mots[20][20], mot_lu[20];
int nb_mot=0,derniere_lettre; verif(char);
 
/****************************************************/
/* Boucle qui enregistre les mots entrés au clavier */
/*************************************************
 
***/
for(nb_mot=0;strcmp(mot_lu,"fin" )!=0;)
 {
   gets(mot_lu);
 
   if(verif(mot_lu)==1 || verif(mot_lu)==2)
    {
      strcpy(tab_mots[nb_mot],mot_lu);
    nb_mot++;
      printf("\nMot enregistré !\nIl y a %d  mots dans le tableau pour le moment\n\n",nb_mot);
      }
   }
 
 
/*******************************************************************************/
/* affichage des mots en ordre inverse et a l'envers : martine deviens enitram */
/*************************************************
 
******************************/
nb_mot=nb_mot-1;
for(;nb_mot>=0;nb_mot--)
 {
   derniere_lettre=strlen(tab_mots[nb_mot]);
   for(;derniere_lettre>=0;derniere_lettre--)
    {
      printf("%c",tab_mots[nb_mot][derniere_lettre]);
      }
   printf("\n" );
   }
getch();
}
 
int verif(char mot_recu)
 {
   int derniere_lettre;
   derniere_lettre=(strlen(mot_recu))-1;
   if(mot_recu[derniere_lettre]=='t';) return 1;
   else if(mot_recu[derniere_lettre]=='s';) return 2;
   else return 0;
   }

 
merci d'avance

 

[jfdsdjhfuetppo]--Message édité par SquiiiD le 01-05-2002 à 13:19:32--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 01-05-2002 à 13:23:44    

c bon jai trouvé !!!!!! j'avais oublié ke c un tableau de lettres ke j'envois !!!!!!!!!!!
 
int verif(char mot_recu[]) et non  
int verif(char mot_recu)
 
 
!!!
 
te prend plus la tete j'ai trouvé  
merci k meme :)

 

[jfdsdjhfuetppo]--Message édité par SquiiiD le 01-05-2002 à 13:24:30--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 01-05-2002 à 13:24:50    

int verif(char *mot_recu)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 01-05-2002 à 13:24:50   

Reply

Marsh Posté le 01-05-2002 à 13:25:16    

Zut, une minute trop tard :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 01-05-2002 à 13:29:24    

antp salut merci kan meme d'avoir repondu
 
au fait ca veut dire koi l'etoile devant la variable la???  
skuze mon ignorance je debute en C :)
 
c pas pour les pointeur? si oui, c koi un pointeur exactement???  
a+

Reply

Marsh Posté le 01-05-2002 à 13:30:35    

oui c'est un pointeur, au lieu de mettre la donnée dans la variable, tu mets son adresse mémoire
lorsqu'on rencontre le pointeur, on va donc chercher le contenu de l'adresse mémoire

 

[jfdsdjhfuetppo]--Message édité par Urd-sama le 01-05-2002 à 13:31:27--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 01-05-2002 à 13:32:37    

ha ok mais pour l'adresse memoire c pas avec un &  ??? ca change quoi alors l'etoile ou le &
tkx

Reply

Marsh Posté le 01-05-2002 à 13:42:11    

c'est pour utiliser le pointeur dans 2 cas différents, mais je me souviens plus exactement...
j'avais appris ca en 4e vitesse et ca fait 6 mois que j'ai plus écris une ligne de C

Reply

Marsh Posté le 01-05-2002 à 13:42:23    

& = utiliser l'adresse de la variable au lieu de sa valeur
* = utiliser la variable pointée par l'adresse au lieu de la valeur du pointeur


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 01-05-2002 à 13:43:29    

ah ben voui! quelle nouille je fais...

Reply

Marsh Posté le 01-05-2002 à 13:48:04    

ok merci les gars, j'ai po encore vu les pointeurs a l'ecole  :lol:  
ca viendra bientot
a+ merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed