How can I convert a char field to a string if I have the '\ 0' character stored in some position. For example, if I have "ab \ 0bb", the a.lenght () command will show me that I have only two characters stored
string getString(char *str, int len)
{
str[len] = '\0';
string strBuffer = string(str);
cout << strBuffer.length() << endl;
return strBuffer;
}
CodePudding user response:
As mentioned in the comments, std::string
(which I will assume string
and the question is referring to) has a constructor taking the length and allowing null characters:
string getString(char *str, int len)
{
return {str, len};
}
or if you want to be explicit (to avoid confusion with an initializer list constructor)
string getString(char *str, int len)
{
return string(str, len);
}
The str
parameter should probably also have type const char*
, not char*
, and the type of len
should probably be std::size_t
. And probably string
should be qualified as std::string
as well instead of using using namespace std;
or using std::string;
(depends on context).