Rechercher : dans
Par :

Le mot le plus long

Dernière réponse le 14 sep 2008 à 08:36:12 jimouxx, le 12 sep 2008 à 11:16:31 
 Signaler ce message aux modérateurs

Bonjour,

J'ai un petit probleme !
Je dois créer un programme permettant a l'utilisatuer de saisir une chaine de caracteres.
Le programme affiche lemot le plus long contenu dans la phrase. Le tout en c++...

Voici ce que j'ai tapé mais ça ne marche pas :
//Mot le plus long.CPP :
#include<iostream>
#include<conio.h>
#include<string.h>
#include<math.h>
#include<iomanip>
#include<time.h>

using namespace std;

int Compter (char tab[149], int &Nblettres, int &i)
{
Nblettres=0;
while(tab[i] != '0')
{
Nblettres= Nblettres+1;
i++;
}

return Nblettres;
}

void Stocker ( char tab[149], char Mot[29], int &Nblettres, int &i)
{
int j;
j=0;
while (tab[i]!= '0')
{
Mot[i]=tab[i];
i++;
}

Mot[i]='\0';

}


int main()
{
int i, Nblettres, Grand;
char tab[149];
char Mot[29];

cout<<"Veuillez saisir la phrase s'il vous plait ! \n";
gets(tab);

i=0;
Nblettres=0;
Grand=0;

while (tab[i]!= '\0')
{
Compter(tab, Nblettres, i);

if(Nblettres>Grand)
{
Stocker(tab, Mot, Nblettres, i);
Grand=Nblettres;
}

i=i+Nblettres;
}

cout<< "Le plus grand mot est : "<<Mot;


getch();
return 0;

}

Merci d'avance pour votre aide ;)

Meilleures réponses pour « Le mot le plus long » dans :
Télécharger PlusLong Voir Tout le monde connaît le jeu "des chiffres et des lettres". Dans ce jeu, il est question de trouver le mot le plus long à partir d'une combinaison de lettres donnée de façon aléatoire. PlusLong est un jeu qui a pour but de retrouver le mot le plus...

1

JulienZ, le 12 sep 2008 à 14:51:22

Je ne comprend pas pourquoi tu fais :

while(tab[i]!='0')
{
....
}


Il suffit que tu détecte l'espace :
while(tab[i]!=0x20)
{
...
}


20 est le code ascii de l'espace en hexadecimal.

Répondre à JulienZ

2

fsteven, le 12 sep 2008 à 15:13:54

Transforme

int Compter (char tab[149], int &Nblettres, int &i)
en
int Compter (char *tab, int *Nblettres, int *i)

et
void Stocker ( char tab[149], char Mot[29], int &Nblettres, int &i)
en
void Stocker ( char *tab, char *Mot, int *Nblettres, int *i)


sinon précise ce qui ne marche pas...as tu essayé de debugger ?

Répondre à fsteven

3

JulienZ, le 12 sep 2008 à 15:34:14

Je ne suis pas trop d'accord avec cela, il vaut mieux rester dans l'optique du C++ et éviter au maximum les problèmes d'allocation mémoire (segmentation fault). Le passage par référence pour Nblettres et i est mieux. Je trouve que c'est très bien adapté ici.

Répondre à JulienZ

4

fsteven, le 13 sep 2008 à 07:43:27

Il semble modifier i dans les fonctions

Répondre à fsteven

5

JulienZ, le 13 sep 2008 à 16:57:52

Ben justement la modification d'une variable référence, modifie la variable elle-même.

Répondre à JulienZ

6

 fsteven, le 14 sep 2008 à 08:36:12


Répondre à fsteven