0

我有一个无符号字符数组:

unsigned char buffer[BUFFER_SIZE];

我想将该数组中的前 N ​​个无符号字符读入一个字符串,但是在查看之后strncpy(),这似乎只需要指向有符号字符的指针。

我应该看memcpy()吗?

4

3 回答 3

1

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

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

另见:

有没有从 unsigned char* 转换为 char* 的好方法?

于 2012-10-16T07:12:26.820 回答
0

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

无论如何,只需转换char *并使用任何有意义的 stdlib 函数。

于 2012-10-16T07:06:18.590 回答
0

如果用字符串表示一个字符数组,那么 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 );
于 2012-10-16T07:52:16.527 回答