C语言通过一个函数,将一个16进制的颜色字符串转化成RGB的颜色值
时间: 2024-02-20 10:56:44 浏览: 37
可以定义一个函数,接收一个 16 进制颜色字符串作为参数,将其转换为 RGB 颜色值,如下所示:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void hex_to_rgb(char *hex_color, int *red, int *green, int *blue) {
// 去掉 "#" 号
if (*hex_color == '#') {
hex_color++;
}
// 将颜色值转换为整数
int color = (int) strtol(hex_color, NULL, 16);
// 分离红、绿、蓝三个分量
*red = (color >> 16) & 0xFF;
*green = (color >> 8) & 0xFF;
*blue = color & 0xFF;
}
int main() {
char hex_color[7]; // 16 进制颜色值,如 "#FFA500"
int red, green, blue; // RGB 颜色值
printf("Enter a hexadecimal color value: ");
scanf("%s", hex_color);
hex_to_rgb(hex_color, &red, &green, &blue);
printf("RGB color: (%d, %d, %d)\n", red, green, blue);
return 0;
}
```
在上面的代码中,定义了一个名为 `hex_to_rgb` 的函数,接收一个 16 进制颜色字符串和三个整型指针作为参数,分别表示 RGB 颜色值的红、绿、蓝分量。在函数中,首先去掉颜色字符串中的 "#" 号,然后使用 `strtol` 函数将颜色值转换为整数。接着,使用位运算将整数转换为 RGB 颜色值的红、绿、蓝分量。
在主函数中,使用 `scanf` 函数获取用户输入的颜色值,然后调用 `hex_to_rgb` 函数将其转换为 RGB 颜色值,并输出结果。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)