Insérer la valeur d'une variable dans une chaine de caractère [Résolu]

Messages postés
59
Date d'inscription
lundi 21 août 2006
Dernière intervention
17 juillet 2009
- - Dernière réponse : Zakata
Messages postés
59
Date d'inscription
lundi 21 août 2006
Dernière intervention
17 juillet 2009
- 6 juil. 2007 à 23:00
Bonjour,

(Je suis débutant en C++)
Est il posible d'insérer la valeur d'une variable (int, bool, float...) dans une chaine de caractère (string) ?
du genre :

#include #include <string>
using namespace std
int main(void){    int i=648;    string MaChaine;    MaChaine+="Du text";    MaChaine+=i;}
Merci
Damien
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Dernière intervention
30 août 2012
18
3
Merci


<code class="cpp_keyword2">#

include



<sstream>





int

main
()
{

//
créer
un
flux
de
sortie

std::
ostringstream oss;
//
écrire
un
nombre
dans
le
flux

oss
<
<
10
;
//
récupérer
une
chaîne
de
caractères

std::
string result
=
oss.
str
();
}
</code>

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 89 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_laurent1024
Messages postés
100
Date d'inscription
lundi 30 octobre 2006
Dernière intervention
14 avril 2009
0
Merci
MaChaine = MaChaine + i;
Commenter la réponse de Yunchi
Messages postés
59
Date d'inscription
lundi 21 août 2006
Dernière intervention
17 juillet 2009
0
Merci
Ok merci pour vos réponses

Laurent1024->Je ne connais pas encore les flux
.
<code class="cpp_keyword2">
<sstream> est il inclu dans  ?
</code>

Yunchi-> Je ne comprend pas chez moi ça ne marche pas, 
si je fais


MaChaine = "ABC  " + i;
cout<< MaChaine;

il me sort : 'ABC  ?' quelque soit la valeur de i (pour les valeurs que j'ai essayé)

Bonnejournée
Commenter la réponse de Zakata
Messages postés
100
Date d'inscription
lundi 30 octobre 2006
Dernière intervention
14 avril 2009
0
Merci
ah si i est un string je sais que ca marche comme ca mais pour un int alors je sais pas en C++


essaye : MaChaine.insert(MaChaine.length , i);
ou sinon MaChaine += i;


sinon le truc du flux a l'air de marcher :)

ostringstream oss;

string chaine = "MaChaine";
int i = !;

oss << MaChaine << i;
MaChaine = oss.str();

cout << MaChaine;
Commenter la réponse de Yunchi
Messages postés
59
Date d'inscription
lundi 21 août 2006
Dernière intervention
17 juillet 2009
0
Merci
Ok merci je vais tester la technique du flux
Commenter la réponse de Zakata
Messages postés
59
Date d'inscription
lundi 21 août 2006
Dernière intervention
17 juillet 2009
0
Merci
Bon ca marche nickel il faut juste savoir que oss.clear() n'efface pas la chaine de charactère mais elle remet à zéro les bits d'erreur du flux.

sinon je vais encore abuser mais la fonction find() de la classe string me renvoie 4294967295 lorsqu'elle ne trouve pas le charatere rechercher. C'est quoi 4294967295 c'est le nombre max de charactères?
Commenter la réponse de Zakata
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Dernière intervention
30 août 2012
18
0
Merci
http://www.cplusplus.com/reference/string/string/find.html

Tu trouvera ce que tu veux :)
<tt><tt>size_t find ( const string& str, size_t pos = 0 ) const;
size_t find ( const char* s, size_t pos, size_t n ) const;
size_t find ( const char* s, size_t pos = 0 ) const;
size_t find ( char c, size_t pos = 0 ) const;

</tt></tt>* str : npos is returned.<tt><tt>// different member versions of find in the same order as above:
found =str.find(str2);
if (found!=string::npos)
cout << "first 'needle' found at: " << int(found) << endl;

</tt></tt>
Commenter la réponse de cs_laurent1024
Messages postés
59
Date d'inscription
lundi 21 août 2006
Dernière intervention
17 juillet 2009
0
Merci
Nickel merci encore

Damien
Commenter la réponse de Zakata

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.