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 <iostream>
#include <iomanip>
#include <conio.h>
#include <math.h>
#include <string.h>
using namespace std ;
void extraire(int position, char Mot[30],int &CpteurCar, char TabCar[30])
{
int j,x;
j=0;
x=position-CpteurCar;
while(j!=position)
{
Mot[j]=TabCar[x];
j++;
x++;
}
}
void compter(char TabCar[30], char Mot[30])
{
int CpteurCar,PlusGrand,i,position;
i=0;
PlusGrand=0;
while(i<=30)
{
CpteurCar=0;
while(TabCar[i]!=' ')
{
CpteurCar=CpteurCar+1;
i=i+1;
}
if(CpteurCar>PlusGrand)
{
PlusGrand=CpteurCar;
position=i;
}
i=i+1;
i=i+1;
}
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);
}
Merci de vos réponses.
Titiii25