将字符串变量分配给unsigned char变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将字符串变量分配给unsigned char变量相关的知识,希望对你有一定的参考价值。

假设我有一个表示十六进制值的字符串s:

string s="0x80";

我想将s的值赋给v,其中v定义为:

unsigned char v;

这样做最简单的方法是什么?


我为什么需要它?因为在here中,布隆过滤器被表示为unsigned char的向量,其中每个char代表8位。我想访问每个char,对其执行一些计算,然后以兼容的形式将其存储回来。此外,当我打印向量的每个元素(其类型为unsigned char)时,它以十六进制形式出现,例如, 3a,98等

答案
  1. 从字符串构造一个std::istringstream
  2. 通过指示流包含十​​六进制格式的数据,从istringstream中提取数字。
  3. 将号码分配给char

std::string s="0x80";
std::istringstream str(s);
int num;
str >> std::hex >> num;

unsigned char v = num;
另一答案

将字符串转换为整数:

unsigned char num = std::stoi(s, nullptr, 0);

以上是关于将字符串变量分配给unsigned char变量的主要内容,如果未能解决你的问题,请参考以下文章

将'\'分配给char [重复]

C语言中把unsigned char 型数据赋值给int 型数据会不会出问题

将oracle日期分配给SSIS变量

字符串怎么转换为unsigned char数组

尝试将字符串分配给结构内的字符串变量时出错

什么是unsigned char;;?