how to copy char * into a string and vice-versa
c++
Solution
Converting a `char*` to a `std::string`:
char* c = "Hello, world";
std::string s(c);
Converting a `std::string` to a `char*`:
std::string s = "Hello, world";
char* c = new char[s.length() + 1];
strcpy(c, s.c_str());
// and then later on, when you are done with the `char*`:
delete[] c;
I prefer to use a `std::vector<char>` instead of an actual `char*`; then you don't have to manage your own memory:
std::string s = "Hello, world";
std::vector<char> v(s.begin(), s.end());
v.push_back('\0'); // Make sure we are null-terminated
char* c = &v[0];
Problem
If i pass a char * into a function. I want to then take that char * convert it to a std::string and once I get my result convert it back to char * from a std::string to show the result. - I don't know how to do this for conversion ( I am not talking const char * but just char *) - I am not sure how to manipulate the value of the pointer I send in. so steps i need to do - take in a char * - convert it into a string. - take the result of that string and put it back in the form of a char * - return the result such that the value should be available outside the function and not get destroyed. If possible can i see how it could be done via reference vs a pointer (whose address I pass in by value however I can still modify the value that pointer is pointing to. so even though the copy of the pointer address in the function gets destroyed i still see the changed value outside. thanks!