Pointeurs et tableau de pointeurs

dragon3x6 Messages postés 14 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 21 juin 2007 - 7 avril 2004 à 12:02
dragon3x6 Messages postés 14 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 21 juin 2007 - 7 avril 2004 à 13:19
Salut à la communauté des developpeurs C,

j'essai d'écrire un bout de code qui enregistre une liste de mots dans une structure de type arbre.

Lorsqu'un mot est entré, on peut récuperer chaque lettre par un indice.

Mon problème est de savoir comment on récupère le contenu de l'indice pointé.

Ex:

char mot;
strcpy(mot,"coucou");

//recuperation du 'c' par mot[0] ???

//j'ai fais plusieurs essais:

char lettre[1];

//1er essai
strcpy(lettre,mot[0]);
//resultat:
error C2664: 'strcpy' : cannot convert parameter 1 from 'char' to 'char *'
//il ne peut convertir un pointeur en une valeur mais comment pourrais-je convertir mot[0] (qui est un pointeur sur une lettre du mot: une lettre = un byte) en une valeur (chaine de caractère) contenant une lettre.

//2eme essai
lettre = mot[0];
//resultat:
error C2440: '=' : cannot convert from 'char' to 'char *[1]'
//ici mot est consideré comme un tableau de pointeur et ses valeurs ne peuvent être affectées à une chaine de caractères.

Si quelqu'un pouvait m'aiguiller ou me donner des explications.

Merci d'avance.

4 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
7 avril 2004 à 12:25
Il faut déclarer ton "mot" en tant que tableau de char :

char* mot=malloc(sizeof(char) * 128);
strcpy(mot,"coucou");

Ensuite, mot[0] contient 'c'
mot[1] contient 'o', etc.

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
0
dragon3x6 Messages postés 14 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 21 juin 2007
7 avril 2004 à 12:50
Merci de ta reponse,

mais mon problème n'est pas là,

car on peut directement obtenir les lettres en declarant seulement une chaine de caractères

char mot[10];

strcpy(mot,"coucou");

//directement on peut obtenir les lettres par les indices

je voudrait enregistrer la valeur pointé par mot[0] dans une variable de type chaine de caractère avec 1 caractère (soit char lettre[1];)
0
cs_pheno Messages postés 141 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 23 mars 2005 1
7 avril 2004 à 13:02
mot[0] est un caractère, ce n est pas une chaine de caractere
donc si tu veux enregistrer mot[0] tu dois l enregistrer dans une variable de type caractere

char lettre;

......

lettre=mot[0];

-----------------------------------------------------
ou alors
char lettre[10];

....
lettre[0]=mot[0];
lettre[1]='\0';

la tu enregistre un caractere dans une chaine de caractere

Amitie

Chevalier Pheno Starboard, membre de la Freeman-Corp
0
dragon3x6 Messages postés 14 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 21 juin 2007
7 avril 2004 à 13:19
Merci de ta reponse,

j'ai trouvé la solution gràce à un tutoriel assez sympa,

je n'ai pas encore de trés bonnes bases sur les pointeurs, je suis en BTS informatique option developpeur et nos profs sont fort en Pascal ou basic mais sont moins fort que nous en C, c'est un peu génant donc je me debrouille par moi-même.

C'est pour sa que je laisse le lien du tuto

http://perso.wanadoo.fr/arsene.perez-mas/langc/pointeurs/pointeurs.htm

(pour ceux qui n'ont pas de trés bonnes bases et pour que mon post serve à quelque chose)

Merci de votre sympathie

je pense que je vais pouvoir vite progresser sur ce site et bien me plaire.

Bonne prog à tous!!!
0
Rejoignez-nous