tableau de chaines de caractères
Bonjour,
J'ai quelques petits problèmes avec l'un de mes programmes, et je ne trouve pas de réponse claire sur internet... ;-(
HELP ME, PLEASE
Mon but :
Récupérer des bouts de chaine de caractère et les stocker dans un tableau.
Fonctionnement du programme :
- je récupère une (grande) chaine de caractère que je stocke dans a.
- ensuite je coupe ma chaine (a); chaque bout sera stocké dans une case du tableau tab.
Exemple :
a = "toto,titi,tata"
tab[0] = "toto"
tab[1] = "titi"
...
Voici mon code actuel:
Il marche, oupi, mais pas dans tous les cas malheureusement.
Précisions supplémentaires:
Dans mon programme je crée trois tableaux de type tab, et je possède trois tableaux statique de type a.
La récupération et le remplissage des deux premiers tableau de type tab marchent très bien pour le troisième, par contre, j'ai des caractères bizarres qui s'ajoutent ce qui me crée une erreur de ségmentation.
Code:
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
|
//initialisation
char a[50];
char a1[50];
char a2[50];
char* tab[10]; // tableau de chaine de caractère
char* tab1[10];
char* tab2[10];
int i, nb_variables = 0;
/*
création de a, a1, a2
remplissage de tab et tab1, aucun problème, c'est exactement le même bout de code que pour tab2, c'est juste les chaines qui changent.
*/
//remplissage de tab2
for (i=0; i < strlen(a2); i++){
if (a2[i]!=','){
cString[0] = a2[i];
cString[1] = '\0';
strcat(a2[nb_variables], cString);
}
else {
nb_variables++;
tab2[nb_variables] = (char*)malloc(sizeof(char));
}
}
nb_variables++;
for(i=0; i < nb_variables; i++)
printf("tab2[%d] = %s\n", i, tab2[i]);
// erreur de segmentation, des caractères bizarres apparaissnt dans tab2[0] |
Je pense que c'est un problème d'initialisation, d'ou ma question:
Comment puis-je faire pour initialiser correctement mes tableaux??
Si vous avez une idée et/ou des remarques n'hésitez pas...
Merci d'avance=)