将非空结尾的无符号字符数组复制到std :: string中

55

如果数组以null结尾,那么这将非常简单:

unsigned char u_array[4] = { 'a', 's', 'd', '\0' };
std::string str = reinterpret_cast<char*>(u_array);
std::cout << "-> " << str << std::endl;

然而,我想知道最合适的方式是如何复制一个非空结尾的无符号字符数组,就像下面这样:

unsigned char u_array[4] = { 'a', 's', 'd', 'f' };

如何将无符号字符数组快速转换为std::string

谢谢大家。

12个回答

0

std::string有一个构造函数,它接受一个字符数组和一个长度作为参数。

unsigned char u_array[4] = { 'a', 's', 'd', 'f' };
std::string str(reinterpret_cast<char*>(u_array), sizeo(u_array));

0

呃,为什么要强制转换类型?

 std::string str(u_array, u_array + sizeof(u_array));

完成。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接