我有一组无符号字符:
unsigned char buffer[BUFFER_SIZE];
我希望将该数组中的前N个无符号字符读入字符串,但是在查看strncpy()
之后,这似乎只是指向已签名的字符。
我应该看memcpy()
吗?
答案 0 :(得分:1)
不确定确切的语法,但如果可能,您应该使用:
reinterpret_cast<char *>(buffer[i]);
另见:
Is there a good way to convert from unsigned char* to char*?
答案 1 :(得分:0)
strcmp
和memcmp
比较数据,他们不会复制它......
无论如何,只需转换为char *
并使用任何stdlib函数都有意义。
答案 2 :(得分:0)
如果用string表示一个char数组,c ++中最简单的方法就是使用std :: copy,不需要转换任何东西:
unsigned char buffer[BUFFER_SIZE];
char dest[BUFFER_SIZE]
std::copy( buffer, buffer + N, dest );
如果你的意思是std :: string,只需使用迭代器样式构造函数:
std::string dest( buffer, buffer + N );