首页 > 解决方案 > 将字符串变量分配给 unsigned char 变量

问题描述

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

string s="0x80";

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

unsigned char v;

最简单的方法是什么?


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

标签: c++arrayshex

解决方案


  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;

推荐阅读