I need to cast only 1 char to string. The opposite way is pretty simple like str[0].

The following did not work for me:

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. 
9

4 Answers

All of

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

and

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

and

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

worked for me.

5

I honestly thought that the casting method would work fine. Since it doesn't you can try stringstream. An example is below:

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

This solution will work regardless of the number of char variables you have:

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

You can set a string equal to a char.

#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

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy