将无符号字符读入字符串
Posted
技术标签:
【中文标题】将无符号字符读入字符串【英文标题】:Read unsigned chars into string 【发布时间】:2012-10-16 07:03:44 【问题描述】:我有一个无符号字符数组:
unsigned char buffer[BUFFER_SIZE];
我想将该数组中的前 N 个无符号字符读入一个字符串,但是在查看 strncpy()
之后,这似乎只需要指向有符号字符的指针。
我应该看memcpy()
吗?
【问题讨论】:
缓冲区的格式是什么?都是满的还是半空的?所有值都具有相同的大小? 你尝试过什么? @PaperBirdMaster- 差评人。对我来说没有意义。这个问题很简单,不言自明。 【参考方案1】:不确定确切的语法,但如果可能,您应该使用:
reinterpret_cast<char *>(buffer[i]);
另见:
Is there a good way to convert from unsigned char* to char*?
【讨论】:
【参考方案2】:strcmp
和 memcmp
比较数据,他们不会复制它...
无论如何,只需转换为 char *
并使用任何有意义的 stdlib 函数。
【讨论】:
【参考方案3】:如果字符串是指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 );
【讨论】:
以上是关于将无符号字符读入字符串的主要内容,如果未能解决你的问题,请参考以下文章