Pointeurs et tableau de pointeurs

Signaler
Messages postés
14
Date d'inscription
jeudi 23 octobre 2003
Statut
Membre
Dernière intervention
21 juin 2007
-
Messages postés
14
Date d'inscription
jeudi 23 octobre 2003
Statut
Membre
Dernière intervention
21 juin 2007
-
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

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
121
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
Messages postés
14
Date d'inscription
jeudi 23 octobre 2003
Statut
Membre
Dernière intervention
21 juin 2007

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];)
Messages postés
141
Date d'inscription
mardi 30 avril 2002
Statut
Membre
Dernière intervention
23 mars 2005
1
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
Messages postés
14
Date d'inscription
jeudi 23 octobre 2003
Statut
Membre
Dernière intervention
21 juin 2007

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!!!