【问题标题】:Read unsigned chars into string将无符号字符读入字符串
【发布时间】:2012-10-16 07:03:44
【问题描述】:

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

unsigned char buffer[BUFFER_SIZE];

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

我应该看memcpy()吗?

【问题讨论】:

  • 缓冲区的格式是什么?都是满的还是半空的?所有值都具有相同的大小? 你尝试过什么
  • @PaperBirdMaster- 差评人。对我来说没有意义。这个问题很简单,不言自明。

标签: c++ strcmp unsigned-char memcmp


【解决方案1】:

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

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

另见:

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

【讨论】:

    【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-16
        • 2016-12-03
        • 1970-01-01
        • 2014-05-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多