C++ converteren van 1 char naar string?

Ik hoef maar 1 charnaar stringte casten. De tegenovergestelde manier is vrij eenvoudig, zoals str[0].

Het volgende werkte niet voor mij:

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.

Antwoord 1, autoriteit 100%

Alles

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

en

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

en

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

werkte voor mij.


Antwoord 2, autoriteit 5%

Ik dacht eerlijk gezegd dat de castingmethode prima zou werken. Aangezien dit niet het geval is, kunt u stringstream proberen. Een voorbeeld staat hieronder:

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

Antwoord 3, autoriteit 2%

Deze oplossing werkt ongeacht het aantal charvariabelen dat je hebt:

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

Other episodes