Se connecter / S'enregistrer
Votre question

[résolu] [C++] Convertion string en char

Tags :
  • string
  • Programmation
Dernière réponse : dans Programmation
13 Juin 2006 08:27:22

Bonjour,

Je cherche à convertir une string en char, voici mon code:

  1. char* convertion(string x)
  2. {
  3. size_t size = x.size() + 1;
  4. char* conv = new char[ size ];
  5. strncpy( conv, x.c_str(), size );
  6. return(conv);
  7. }


J'ai trouvé ce code sur developpez.com mais je n'obtient que des caractères spéciaux.

Qelqu'un a une autre solution?

Autres pages sur : resolu convertion string char

13 Juin 2006 08:50:52

Comment transformer un string (petite cordelette de tissu qui rentre dans les fesses) en char (grosse masse de metal qui tire des obus)????

Une baguette magique? la lampe d'alladin avec ses 3 voeux? beaucoup d'alcool pour confondre les 2?

ok, je sors :-D :-D :-D
13 Juin 2006 12:41:42

wé sors.

Tu veu convertir une chaine en 1char ou bien en autant de char qu'il existe de caractères dans la chaine ?

Je me demande si t'as pas eu un bug avec un de tes progs qui utilisent les strings.
Tu pourrait me montrer le code, il me semble que j'avais eu ce problème une fois mais je l'ai resolu...

Détail, s'il s'agit de passer une chaine de caractère à une fonction, passe PAR REFERENCE (adresse et pointeurs) le premier élément de la chaine (sauf si tu utilise string)
Contenus similaires
a b L Programmation
13 Juin 2006 13:07:44

Tu peux faire une classe (en redéfinissant les opérateurs dont les opérateurs de cast) où tu détruis le char* dans le destructeur. Comme ça, plus besoin de penser au delete comme pour la fonction.

Sinon, si tu ne comptes pas modifier la chaine, un const char * devrait suffire, donc tu pourrais utiliser directement tonString.c_str()
13 Juin 2006 13:28:44

Merci pour votre aide, mais j'ai trouvé une solution un peu bizard mais qui marche...
Je n'ai pas converti ma string et je l'ai écrite dans mon fichier (de façon un peu bizard j'avoue...).

  1. void ecriture(tclient tab)
  2. {
  3. int i;
  4. std::string concat = "";
  5.  
  6. for(i=0;i<82;i++)
  7. {
  8. concat=concat+tab[i]+';';
  9. }
  10. concat=concat+"\n";
  11. //std::cout<<concat;
  12. fic2<<concat; //cette ligne me semble bizard mais ça marche
  13. }




A force de tourner le code dans tous les sens, on arrive à faire quelque chose!! :-D
a b L Programmation
13 Juin 2006 22:20:39

les << et >> sont des opérateurs de flux: un tuyau dans lequel on met des infos binaires linéaires. CE qui permet de les afficher (en dirigeant sur la sortie standard (écran) avec cout) ou de les écrires dans un fichier comme tu as fais.

Si tu fais ta propre classe, il suffit de surcharger les opérateurs << et >> pour ta classe et tu peux l'afficher ou l'enregistrer.
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS