Mon projet est de faire un programme écrivant dans un fichier une suite de chaines de caracteres bien précises:
liste de 4 caracteres composés de toutes les lettres de l'alphabet plus les chiffres, bref
j'ai commencé, seulement je bute sur la manipulation de chaines:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C ... 000Z 0010 0011 ... 009Z 0100 ... ZZZZ
petites explications pour comprendre mon code fouilli:
en fait je fait un tableau de caracteres (chlist)
et un tableau determinant chaque caractere de la chaine (chcount)
(pour chcount = {5,13, 2,14}, la chaine produite sera: 5C2D)
la premiere boucle sert juste a limiter le nombre de chaines produites (ici 20), normalement il faudrai que le programme boucle jusqu'a ce que la chaine soit ZZZZ (ce n'est pas un probleme pour l'instant)
il manque encore la partie ou le programme écrit dans le fichier, mais j'ai du code dont je suis sur du bon fonctionnement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 int main( void ) { char chlist[] = "0123456789abcdefghijklmnopqrstuvwxyz"; char ch[ 5 ] = ""; // la chaine finale char ch2cpy[1] = ""; // une chaine intermediaire (cf plus bas) int chcount[] = {0,0,0,0}; int i,gli; for(gli=0; gli<20; gli++){ chcount[0] += 1 ; // il me faudrai ici une instruction me permettant de réinitialiser la chaine ch for(i=0; i<4; i++){ if(chcount[i]==26){ chcount[i]=0; chcount[i+1] += 1; } // cette condition me permet de passer de 000Z à 0010 } for(i=0;i<4;i++){ ch2cpy[0] = chlist[chcount[i]]; strcpy(ch, ch2cpy); } printf( Mot donné: %s", ch ); } getch( ); return 0; }
Merci d'avance
Partager