字符数组到字符串并复制字符 \0

Aar*_*on7 0 c++ string char

如果我将 '\ 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)

use*_*522 5

正如评论中提到的,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;(取决于上下文)。