161 votes

C++ convertir de 1 char en chaîne de caractères ?

Je dois lancer seulement 1 char a string . Le chemin inverse est assez simple comme str[0] .

Ce qui suit n'a pas fonctionné pour moi :

char c = 34;
string(1,c);
//this doesn't work, the string is always empty.

string s(c);
//also doesn't work.

boost::lexical_cast<string>((int)c);
//also doesn't work.

227voto

Massa Points 2970

Tous les

std::string s(1, c); std::cout << s << std::endl;

y

std::cout << std::string(1, c) << std::endl;

y

std::string s; s.push_back(c); std::cout << s << std::endl;

a fonctionné pour moi.

12voto

Mallen Points 262

Je pensais sincèrement que la méthode de moulage fonctionnerait bien. Comme ce n'est pas le cas, vous pouvez essayer stringstream. Un exemple est ci-dessous :

#include <sstream>
#include <string>
std::stringstream ss;
std::string target;
char mychar = 'a';
ss << mychar;
ss >> target;

8voto

armanali Points 875

Cette solution fonctionnera quel que soit le nombre de char variables que vous avez :

char c1 = 'z';
char c2 = 'w';
std::string s1{c1};
std::string s12{c1, c2};

0voto

edW Points 27

Vous pouvez définir une chaîne de caractères égale à un caractère.

#include <iostream>
#include <string>

using namespace std;

int main()
{
   string s;
   char one = '1';
   char two = '2';
   s = one;
   s += two;
   cout << s << endl;
}

./test
12

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X