bonjour,
Je cherche a faire en langage C l'equivalent de
tab["toto"] = "bonjour"
est ce que c'est possible ?
comment puis je faire cela ?
Merci de votre aide.
bonjour,
Je cherche a faire en langage C l'equivalent de
tab["toto"] = "bonjour"
est ce que c'est possible ?
comment puis je faire cela ?
Merci de votre aide.
non ce n'est pas possible les indices pour les tableaux sont des entiers. Ce que tu cherches à faire est une map (clé/valeur), te reste plus qu'à en écrire une![]()
Cela s'appelle un "dictionnaire" mais cela n'est pas possible en C.
Si vraiment t'en as besoin (ce qui se discute), tu dois d'abord trouver un moyen d'associer "toto" avec un indice numérique puis associer cet indice à "tab".
Par exemple le code suivant peut donner une idée
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 fonctionX() { static char *tabDico[]={ "toto", "titi", "tutu", NULL }; char tab[100][256]; strcpy(tab[indexOf(tabDico, "toto")], "bonjour"); } size_t indexOf(char **dico, char *mot) { char **pt; size_t i; for (pt=dico, i=0; *pt != NULL; pt++, i++) { if (strcmp(*pt, mot) == 0) return i; } return 0; }
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]
Tu peux faire une recherche avec pour mot clé tables de hachage ou hash tables.
Thierry
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
Par contre IndexOf je ne savais pas que ca existait en langage C.
c'est bien du C ?
je developpe avec visual studio 2005
ah non desole javais mal compris , indexof c 'est une fonction
Merci.
indexOf est une fonction écrite par Sve@r en C, c'est tout, ce n'est pas une fonction intégrée au langage.
"La haine seule fait des choix" - Koan Zen
"Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
"Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
Faites du Prolog, ça vous changera les idées !
Ma page Prolog
Mes codes sources commentés
Mon avatar : La Madeleine à la veilleuse de Georges de La Tour
Ouaip. Elle associe le mot dans le tableau à sa position et renvoie ladite position. D'ailleurs j'aurais dû plutôt l'appeler "indiceOf". Et avant que tous les fanas me sautent sur la tronche en me disant qu'elle n'est pas bonne parce que ceci ou cela (entre autres elle ne renvoie aucun code particulier signifiant "pas trouvé"), je rappelle que c'était juste pour donner une idée du truc.
Maintenant la vraie question que je me pose est "pourquoi tenter de créer cet outil qui n'existe pas en C" ? Jusqu'à présent il n'existe pas et tout le monde fait sans...
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]
ben parceque j'en avais besoin.
ca marche bien ce code.
A mon avis, tu devrais nous dire pourquoi tu penses en avoir besoin parce que moi, je pense quand-même qu'on peut faire sans...
Boaf c'est pas vraiment compliqué à inventer. Suffit juste d'attribuer une correspondance unique (cetains appellent ça "bijection") entre chaine et indice numérique parce que le C n'accepte que des indices numériques pour un tableau (d'ailleurs les langages qui offrent le dictionnaire comme php ou Python fonctionnent probablement de la même façon). Mais bon, il est améliorable. Par exemple mon indice numérique c'est la position du mot par rapport aux autres. Si on rajoute par la suite d'autres mots au milieu, ça décale tous les indices des mots suivants (ce qui pourrait fausser le truc). Une amélioration pourrait être de remplacer le tableau des mots par un tableau de structures associant mot-indice. Ainsi, la valeur des mots est fixée une fois pour toute et ne change plus même si on rajoute d'autres mots au milieu...
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]
Si tu as le droit d'utiliser une bibliothèque tierce, tu peux utiliser la structure de donnée GHashTable de la Glib.
Thierry
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
merci.
Je vais regarder de plus pres avec les structures, c'est une bonne idee.
Partager