Convertir un char* en char []

Résolu
Messages postés
31
Date d'inscription
vendredi 25 juin 2004
Statut
Membre
Dernière intervention
19 juin 2007
-
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
-
Bonjour,

Je voulais savoir sil etait possible de convertir un char* en char [], si oui comment dois je proceder ?

char *Text = "Blablablablabla";

char Test[] = Text; // Error 2440

Merci ...

10 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
10
strcat? Pourquoi pas strcpy?
strcpy(Test, Text); tout simplement

char *Text = "Blablablablabla"; n'est pas vraiment correct, vaut mieux mettre const char*

_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
Salut frayst,

essaie ça :
char *Text = "Blablablablabla";
char Test[1024] ;
*Test = 0;
strcat(Test, Text);

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
Messages postés
31
Date d'inscription
vendredi 25 juin 2004
Statut
Membre
Dernière intervention
19 juin 2007

Merci bcp !!

frayst
Messages postés
492
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2012
1
Sans vouloir être chiant: ne jamais utiliser strcpy quand on peut s'en passer :


const char *Text = "Blablablablabla";

char Test[1024] ;

strncpy(&Test[0], &Text[0], strlen(Text));

TuRn3r
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
10
Quel est le but de cette manoeuvre, a part ralentir le programme?
Si tu veux éviter un débordement de test, c'est plutot ca qu'il faudrait faire:
strncpy(Test, Text, sizeof Test - 1);
(je me suis parmis d'écrire Test à la place de &Test[0], si tu n'y vois pas d'inconvénient)

En l'occurence l'utilisation de strcpy n'était pas plus dangereurse que strcat

_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
492
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2012
1
Pourquoi ca ralentirai le programme ???

En l'occurence l'utilisation de strcpy n'était pas plus dangereurse que strcat


--> J'ai jamais dit le contraire elles sont à bannir autant l'une que l'autre, toujours utilisé les fonctions strncpy et strncat!!

TuRn3r
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
10
Ben forcément ca renlentit puisque tu fais un appel (inutile) à strlen

_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Il y a surtout qu'un développeur devrait être un type qui réfléchit et donc ne dira jamais "jamais". La prog n'est pas un taf de secte, on adapte au plus efficace selon la circonstance, les tabous ne sont pas de mise dans ce boulot.

ciao...
BruNews, MVP VC++
Messages postés
549
Date d'inscription
samedi 6 septembre 2003
Statut
Membre
Dernière intervention
6 mars 2010

bonjour,

turnerom : Pourquoi ne pas utiliser strcpy et strcat ? Peux tu expliquer un peu s'il te plait ?

Merci,

Matt...
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
10
Ca sert à éviter un débordement du buffer cible, quand on ne connait pas la taille de la chaine copiée
Sauf qu'ici il l'utilise mal, et du coup ca ne sert à rien
Un cas typique ou on doit utiliser strncpy: le message LVN_GETDISPINFO. Quand on veut fournir du texte, on doit le fournir dans un buffer de taille cchTextMax, il faut donc utiliser strncpy sinon strcpy risque de déborder

_____________________________________
Un éditeur de ressources gratuit pour Windows