gpt4 book ai didi

c - 从数组中获取 RGB 十六进制值并将其作为 int 赋予 malloc 数组

转载 作者:行者123 更新时间:2023-11-30 14:52:24 25 4
gpt4 key购买 nike

我需要一个方法,如何从数组中获取十六进制数,然后将其赋予 int 类型的变量。我知道这听起来很容易,但我需要以“特殊方式” - 例如:

我已经给出了 RGB 十六进制颜色:01a7ff - 并且我将 R、G 和 B 的值保存在额外的数组中 - 如下所示:

char red[3];
red[0] = '0';
red[1] = '1';
red[2] = '\0';

char green[3];
green[0] = 'a';
green[1] = '7';
green[2] = '\0';

char blue[3];
blue[0] = 'f';
blue[1] = 'f';
blue[2] = '\0';

现在我想将完整的红色、绿色和蓝色数组赋予 malloc 保留数组,因此它看起来像这样:

char *data;
data = malloc(sizeof(char)*6);

data[0] = 01; //red array
data[1] = a7; //green array
data[2] = ff; //blue array

我第一次尝试使用 atoi() 但如果数组也有十六进制文字 (a,b,c,d,e,f) 则不起作用 - 有人能为我提供解决方案吗?

干杯

最佳答案

假设数据保存无符号字符值,这应该这样做:

data[0] = (unsigned char) strtol(red, NULL, 16);
data[1] = (unsigned char) strtol(green, NULL, 16);
data[2] = (unsigned char) strtol(blue, NULL, 16);

注意:使用 unsigned char 来保存 0 到 255 之间的数据值就足够了

关于c - 从数组中获取 RGB 十六进制值并将其作为 int 赋予 malloc 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47639269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com