cs_Mike
Messages postés70Date d'inscriptionlundi 17 décembre 2001StatutMembreDernière intervention24 juillet 2004
-
30 août 2003 à 17:59
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 2006
-
30 août 2003 à 20:47
SAlut,
j'aimerais convertir un 'const char *' en 'char *', bizarement aucune libraire ne le fé, ou alors j'ai pas trouvé lol. Donc si vous pouviez m'aider.
MErci d'avance.
A voir également:
Const char to char
Convert const char* to char* - Meilleures réponses
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 30 août 2003 à 18:26
char * et const char* ne sont que des pointeurs sur char, rien de plus.
Le const veut simplement dire que la fonction ne doit pas modifier la chaine de caractere.
Essaie un cast (char*) devant ton "const char*".
cs_Mike
Messages postés70Date d'inscriptionlundi 17 décembre 2001StatutMembreDernière intervention24 juillet 20041 30 août 2003 à 18:21
mdr, en tout cas pas pour ' strcat(char *, const char *) ', essai de passé un const char * en premier parametre de cette fonction ( trés connu ), tu vera bien ...
Il faut imperativement convertir le const char * en char *, pas le choix, sinon tu rentre pas dans la fonction.
cs_Mike
Messages postés70Date d'inscriptionlundi 17 décembre 2001StatutMembreDernière intervention24 juillet 20041 30 août 2003 à 18:32
ué justement si tu c comment marche strcat tu devrai comprendre :
la fonction prend la chaine du second parametre ( const char * ) et l'ajoute à la chaine du premier parametre, qui doit donc, ce premier parametre, etre modifiable et non constant ( logique, car une chaine constante ne pe pas etre reecrite ) ... et donc pas de cast possible aussi ...
voila reflechi au truc ... fé des test si tu ve, tu vera ça marche pas.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Mike
Messages postés70Date d'inscriptionlundi 17 décembre 2001StatutMembreDernière intervention24 juillet 20041 30 août 2003 à 18:46
On y vient lol, voila pourquoi j'ai besoin de convertir un 'const char *' en 'char *', j'ai une fonction qui me renvoie un const char * que je dois ensuite passé par cette fonction strcat, je suis donc obliger de la convertir en char *.
francisdanes
Messages postés3Date d'inscriptionjeudi 14 août 2003StatutMembreDernière intervention30 août 2003 30 août 2003 à 20:39
-------------------------------
Réponse au message :
-------------------------------
> Ahh je savais bien qui y'avait une fonction pour ça, elle s'appelle strdup() et se trouve dans string.h. elle convertie un const char * en char * .
>
> eh bah j'aurais galeré pour la trouvé.
> MErci qd même a tous
> Ciao
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Un cast suffit amplement à enlever le paramètre constant sur un pointeur. Mais si tu es ammené à faire ca, c'est que ton programme est mal conçu.
> >
> > De toute façon dans ton cas:
> >
> >
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 30 août 2003 à 20:47
strdup() ne sert pas à enlever un 'const' mais à dupliquer une chaine de caractères, d'où son nom. En fait elle fait l'allocation dynamique puis la copie via strcpy().