GENERATEUR DE MOTS

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 - 19 mai 2009 à 15:56
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 - 19 mai 2009 à 16:51
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/50034-generateur-de-mots

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
19 mai 2009 à 16:51
sa => ça
Ca ne génère pas de mot, mais une suite de lettre.

Le code peut être simplifié:

int a, b, c, d, e;
FILE* fichier = fopen("liste.txt","w");

for (a = 'a'; a <= 'z'; ++a)
for (b = 'a'; b <= 'z'; ++b)
for (c = 'a'; c <= 'z'; ++c)
for (d = 'a'; d <= 'z'; ++d)
for (e = 'a'; e <= 'z'; ++e)
fprintf(fichier,"%c%c%c%c%c\n", a, b, c, d, e);
fclose(fichier);

Comme tu le vois, il y a vraiment peu de ligne. Un code source doit être plus fournit pour être posté, sinon c'est plus un snippet qu'autre chose...

Une petite amélioration (choix de l'alphabet, de la taille de mots générés):

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void generateLetters_rec(FILE* file, const char* alp,
int pos, int size, char* buffer)
{
const char* c;

if (pos >= size)
{
fprintf(file,"%s\n", buffer);
return;
}

for (c = alp; c && *c; ++c)
{
buffer[pos] = *c;
generateLetters_rec(file, alp, pos + 1, size, buffer);
}
}

int generateLetters(const char* filename, const char* alp, int size)
{
FILE* file = fopen(filename,"w");
char* buffer;

if (!file)
return 0;

buffer = malloc((size + 1) * sizeof (char));
buffer[size] = 0;
generateLetters_rec(file, alp, 0, size, buffer);
free(buffer);
fclose(file);

return 1;
}

int main(void)
{
if (!generateLetters("liste.txt", "abc", 5))
{
printf("Erreur d'ouverture !\n");
return 1;
}

return 0;
}
roman492 Messages postés 1 Date d'inscription jeudi 21 septembre 2006 Statut Membre Dernière intervention 19 mai 2009
19 mai 2009 à 16:18
je l'ai mis justement car en cherchant une source comme celle ci je suis tombé sur pleins de sources qui faisaient la meme chose au final en étant plus compliquées...
donc si sa peut permettre d'accelerer la vitesse de generation des mots et la simplicité du code bin je serai ravi d'avoir aidé les gens que sa interessent !
mais merci pour ton com' tres instructif :)
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
19 mai 2009 à 15:56
Bof...
C'est juste des boucles imbriquées, pas de quoi en faire une source...
Rejoignez-nous