cs_Titiii25
Messages postés1Date d'inscriptionvendredi 19 septembre 2008StatutMembreDernière intervention19 septembre 2008
-
19 sept. 2008 à 18:09
ciberrique
Messages postés589Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention18 juillet 2010
-
21 sept. 2008 à 00:53
Bonjour,
Etant étudiant notre prof nous a demandé de créer un programme qui doit dire le plus grand mot d'une chaine de caractère saisie avec gets. Le seul problème c'est que quand je met :
gets(TabCar);
cout << " La phrase est : ";
while(*TabCar!= '\0')
{
cout<<TabCar;
}
Il met met des millions de fois la chaine saisie bien sur sans s'arreter ... C'est peu-etre une question bete mais je ne trouve pas de réponse concrete avec la fonction que je connais très peu et comme la prof nous .
Voici tout mon programme au cas ou cela serait-utile :
#include
#include
#include <conio.h>
#include <math.h>
#include <string.h>
using namespace std ;
}
cout << " Le mot le plus grand fait " << PlusGrand << " lettre(s) ";
extraire(position,Mot,CpteurCar,TabCar);
}
int main()
{
char *TabCar;
TabCar=new char;
char Mot[30];
int i,CpteurCar;
i=0;
cout << " .: Le Mot Le Plus Long :. \n\n\n\n" ;
cout << " Veuillez saisir une chaine de caracteres (maximun 30 caracteres): \n\n" ;
gets(TabCar);
cout << " La phrase est : ";
while(*TabCar!= '\0')
{
cout<<TabCar;
}
cout << " \n\n ";
system("pause");
compter(TabCar,Mot);
cout << "\n\n Le mot le plus long est : " ;
while(i<=30)
{
cout << Mot[i];
i++;
}
cout << "\n\n\n\n .: Fin du programme :. " ;
getch();
return(0);
J'ajouterai n'utilise pas gets car elle permet le buffer overflow ce qui est dangereux utilise plutot fget(TabCar,30,stdin);Et aussi quand tu fais TabCar new char; tu dimensionnes un tableau de un caractere donc plutot TabCar new char[30]; qui dimensionne un tableau de 30 char de 0 à 29.
J'espere avoir était assez clair et ne pas avoir dis de sotise.