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

Char array to string and copy character \0

如果我在某个位置存储了 '\0' 字符,如何将 char 字段转换为字符串。例如,如果我有“ab\0bb”,a.lenght()命令会告诉我我只存储了两个字符

string getString(char *str, int len)
{
    str[len] = '[=10=]';
    string strBuffer = string(str);
    cout << strBuffer.length() << endl;
    return strBuffer;
}

如评论中所述,std::string(我假设 string 并且问题是指的)有一个构造函数获取长度并允许空字符:

string getString(char *str, int len)
{
    return {str, len};
}

或者如果你想明确(避免与初始化列表构造函数混淆)

string getString(char *str, int len)
{
    return string(str, len);
}

str 参数的类型可能也应该是 const char*,而不是 char*len 的类型可能应该是 std::size_t。可能 string 也应该限定为 std::string 而不是使用 using namespace std;using std::string;(取决于上下文)。