Bonjour
Comment est-ce que je crée un tableau de chaines de caracteres?
Comment dois-je l'initialiser?
Ca ca ne fonctionne pas:
Pourquoi?Code:
1
2
3
4
5 char txt_caseLotto[5][5]; for(i=0;i<5;i++) { txt_caseLotto[i] = ""; }
Version imprimable
Bonjour
Comment est-ce que je crée un tableau de chaines de caracteres?
Comment dois-je l'initialiser?
Ca ca ne fonctionne pas:
Pourquoi?Code:
1
2
3
4
5 char txt_caseLotto[5][5]; for(i=0;i<5;i++) { txt_caseLotto[i] = ""; }
Comme ceci :
ou alors :Code:
1
2
3
4 char txt_caseLotto[5][5]; for(i=0;i<5;i++) txt_caseLotto[i][0] = '\0';
sinon :Code:
1
2
3
4
5 #include <string.h> <...> char txt_caseLotto[5][5]; for(i=0;i<5;i++) strcpy(txt_caseLotto[i],"");
L'explication est qu'en C une chaine de caractères n'est autre qu'une suite de char terminé par un '\0', pour copier cette chaîne il faudra copier les caractères un à un, c'est ce que font les fonctions déclarées dans string.h.Code:
1
2
3
4
5
6 #include <string.h> <...> char txt_caseLotto[5][5]; for(i=0;i<5;i++) memset(txt_caseLotto[i],'\0',sizeof txt_caseLotto[i]/* 5 */ );
Pour une initialisation tu pourrais te contenter de mettre un '\0' en début de chaque lignes (exemple 1/2) ou alors mettre par tout des '\0' (exemple 3) .