如果我将 '\ 0' 字符存储在某个位置,如何将 char 字段转换为字符串。例如,如果我有“ab \ 0bb”,a.lenght()命令将显示我只存储了两个字符
string getString(char *str, int len)
{
str[len] = '\0';
string strBuffer = string(str);
cout << strBuffer.length() << endl;
return strBuffer;
}
Run Code Online (Sandbox Code Playgroud)
正如评论中提到的,std::string(我将假设string和问题所指的)有一个构造函数获取长度并允许空字符:
string getString(char *str, int len)
{
return {str, len};
}
Run Code Online (Sandbox Code Playgroud)
或者如果你想明确(以避免与初始化列表构造函数混淆)
string getString(char *str, int len)
{
return string(str, len);
}
Run Code Online (Sandbox Code Playgroud)
该str参数可能还应该有类型const char*,而不是char*,而 的类型len可能应该是std::size_t。并且可能也string应该进行限定,std::string而不是使用using namespace std;or using std::string;(取决于上下文)。