blueburry
Messages postés50Date d'inscriptionmercredi 20 juillet 2005StatutMembreDernière intervention22 mai 2006
-
10 août 2005 à 15:44
xterminhate
Messages postés371Date d'inscriptiondimanche 4 janvier 2004StatutMembreDernière intervention23 septembre 2009
-
10 août 2005 à 15:59
bonjour,
je suis en train de programmer sur visual c++.
g un probleme avec les string, je fais:
char nom[26];
char sport[26];
string nom = &nom[0];
string sport = &sport[0];
string str1 = "je m'appelle"+nom+"et j'aime le"+sport;
je pense k'il n'est pas en train d'accepter le +.
ke dois-je faire en c++ pour concatener plusieurs chaines?
kelles headers dois-je importer?
il m'affiche les erreurs suivantes
c:\program files\microsoft visual studio\myprojects\serveurhttp\sessionhttp.cpp(63) : error C2784: 'class std::reverse_iterator<_RI,_Ty,_Rt,_Pt,_D> __cdecl std::operator +(_D,const class std::reverse_iterator<_RI,_Ty,_Rt,_Pt,_D> &)' : could not dedu
ce template argument for '' from 'char [147]'
c:\program files\microsoft visual studio\myprojects\serveurhttp\sessionhttp.cpp(63) : error C2677: binary '+' : no global operator defined which takes type 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' (or
there is no acceptable conversion)
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 10 août 2005 à 15:56
&nom[0]; tu peux mettre nom, c'est plus court
Pour le reste, + est défini comme ca (en gros) (pour const char*)
string& string::operator+(const char* p);
Cet opérateur s'applique quand il y a une string à gauche et un char* à droite.
Tu peux faire string+char*, mais pas char*+string, c'est logique
string str1 = "je m'appelle";
str1 += nom;
str1 += " et j'aime le ";
str1 += sport;
Utilise toujours += au lieu de + qui va te générer plein d'objets temporaires et de copies inutiles