1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
#include "stdafx.h"
#include "stdlib.h"
#include "string.h"
int _tmain(int argc, _TCHAR* argv[])
{
char mot[51];
char *pmotPlusLg;
int lgmotPlusLg, lgMotLu, cpt=0;
lgmotPlusLg=-1;
pmotPlusLg = "";
pmotPlusLg = (char *) malloc(1);
//Prototypes
char * FONCTION(char *, int *, int *, char [], int);
printf("\tLecture d'une suite de mots. \nArret a la lecture d'une * en 1er caractere.\n\nVeuillez entrer le mot : ");
fgets(mot, sizeof mot, stdin);
do
{
if((strcmp(mot, pmotPlusLg))==0)
cpt++;
else
{
lgMotLu=strlen(mot);
if(lgMotLu>lgmotPlusLg)
{
pmotPlusLg=FONCTION(pmotPlusLg, &cpt, &lgmotPlusLg, mot, lgMotLu);
}
else
{
if(lgMotLu==lgmotPlusLg)
{
if((strcmp(mot, pmotPlusLg))<0)
{
pmotPlusLg=FONCTION(pmotPlusLg, &cpt, &lgmotPlusLg, mot, lgMotLu);
}
}
}
}
//printf("Mot le + long : %s lu %d fois\n", pmotPlusLg, cpt);
printf("Veuillez rentrer le nouveau mot : ");
fgets(mot, sizeof mot, stdin);
}
while(mot[0]!='*');
printf("Le mot le plus long est : %s avec une longueur de : %d. Il a ete lu %d fois\n", pmotPlusLg, lgmotPlusLg, cpt);
free(pmotPlusLg);
system("PAUSE");
return 0;
}
//Fonction
char * FONCTION(char *i, int *c, int *lgi, char mLu[], int lgmLu)
{
free(i);
*c=1;
i=(char *) malloc(lgmLu + 1);
strcpy(i, mLu);
*lgi=lgmLu;
if(i != NULL)
{
strcpy(i, mLu);
*lgi=lgmLu;
}
return i;
} |
Partager