Bonsoir,
Existe t'il une solution pour convertir une chaine char en un tableau?
Bonsoir,
Existe t'il une solution pour convertir une chaine char en un tableau?
Ça dépend de ce que tu veux faire.
Si tu veux déposer chaque caractère dans sa propre « case », alors ta chaîne est déjà un tableau. Tu peux dès maintenant indexer tes caractères avec chaine[0], chaine[1], chaine[2], etc.
Au fait ce n'est même un une chaine char que j'ai, mais une const char:
exemple:
const char *argv;
argv = "toto titi";
le but c'est d'avoir:
chaine[0] = toto et chaine[1]=titi
Si j'ai bien compris, il te faut un tableau de chaines (char**).
Tu en déclares un et tu affecte un char* à chacune de ses cases.
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Ok, je vais tester ca demain et je vous tiens au courant.
Merci bien
Salut
Le concept "chaine" n'existe pas en C. Il est donc simulé par l'utilisation d'un tableau de char où chaque case du tableau contient un caractère de la chaine.
Et pour que le programmeur sache où s'arrête la chaine, le tableau contient une case supplémentaire contenant le caractère '\0'.
Ensuite, suffit de créer des fonctions permettant de manipuler (copier, afficher, compter) les chaines ; ces fonctions se basant toutes sur le caractère '\0'. Et, comble du bonheur, ces fonctions ont déjà été écrites et sont à ta disposition.
A partir de là, puisqu'une chaine c'est déjà un tableau, ta question n'a plus trop de sens...
J'avais pas vu ton édit quand j'ai posté. Donc déjà ça fait une sacrée différence avec ta question initiale...
Tu peux le faire en utilisant strtok_r()
Bon j'ai tapé cet exemple vite fait sans le tester mais ça devrait être bon. Et on peut même le faire en une ligne mais ça devient alors assez imbitable...
Code c : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 char *argv="toto titi"; char *word, *mem; char* chaine[2]; size_t i; for (word=strtok_r(argv, " ", &mem), i=0; word != NULL; word=strtok_r(NULL, " ", &mem), i++) { chaine[i]=word; }
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Partager