将无符号字符读入字符串

时间:2012-10-16 07:03:44

标签: c++ strcmp unsigned-char memcmp

我有一组无符号字符:

unsigned char buffer[BUFFER_SIZE];

我希望将该数组中的前N个无符号字符读入字符串,但是在查看strncpy()之后,这似乎只是指向已签名的字符。

我应该看memcpy()吗?

3 个答案:

答案 0 :(得分:1)

不确定确切的语法,但如果可能,您应该使用:

reinterpret_cast<char *>(buffer[i]);

另见:

Is there a good way to convert from unsigned char* to char*?

答案 1 :(得分:0)

strcmpmemcmp比较数据,他们不会复制它......

无论如何,只需转换为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 );