|
|
|
|
Bonjour, voila mon problème.
J'utilise une fonction qui me renvoie un const char.
seulement si je veux faire un strcpy avec un char ca ne marche pas.
exemple :
const char dest;
char source;
strcpy(dest,source);
Comment puis je faire pour réaliser mon strcpy, sachant que je récupère un const char et que je ne peut pas changer le char source (je ne peut pas le mettre en const).
merci d'avance pour votre aide ...
Salut
strcpy(const char * cible, char * source); cela n'a dailleurs aucun intérêt. pour travailler sur le contenu d'une constante, on le copie dans une variable strcpy(chaine_cible, constante_chaine); d'ailleurs je ne vois pas comment ni pourquoi on pourait modifier le retour d'une fonction après son exécution. constante: qui ne change pas variable : qui change cordialement ¤ |
Tu précise un type const dans un prototype de fonction pour garantir qu'un paramètre ne sera pas modifier :
|
Const char dest;
|
Bonjour, j'ai aussi un pb de const char mais un peu différent. Je veux bien une explication et/ou une aide.
|
Peux tu me donner le morceau de code ?
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
int main(){
char * src = "plop plop";
char * dst = (char *)calloc(sizeof(char)*255);
strcpy(dst,(const char *) src);
free(src);
free(dst);
printf("src = [%s]\n",src);
printf("dst = [%s]\n",dst);
printf("press any key\n");
getchar();
return 0;
}
Bonne chance |
Répondre à mamiemando
|
Ben dis moi ce que tu n'as pas compris et je tenterais de t'expliquer. En gros l'idée c'est qu'on peut caster d'un objet "non const" vers un objet "const" mais pas le contraire (et même si c'est possible il faut pas le faire :p).
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
void f(const char * src){
char * plop = (char *)malloc(sizeof(char)*strlen(src));
strcpy(plop,src); // Ici on a besoin de garantir la constance de src
printf("%s\n",plop);
free(plop);
}
int main(){
const char *src="j'aime les tapirs";
f(src);
return 0;
}
J'espère que c'est plus clair pour toi sinon n'hesite pas à demander des precisions. Bonne chance |