用C语言编写一个函数,函数接收一个由十六进制组成的字符串,函数把这组字符串转换成十进制,并将十进制返回
时间: 2024-02-03 15:12:28 浏览: 172
十六进制数转换成十进制数的函数
可以使用C语言中的标准库函数 `strtoul()` 来实现字符串的十六进制转十进制。
函数的代码如下:
```c
unsigned long hex_to_decimal(const char *hex_str) {
char *endptr;
return strtoul(hex_str, &endptr, 16);
}
```
该函数接收一个 `const char *` 类型的十六进制字符串作为参数,返回一个 `unsigned long` 类型的十进制数。
函数内部使用 `strtoul()` 函数将字符串转换成十进制数,并返回结果。其中第二个参数 `&endptr` 是一个指向字符指针的指针,用于存储转换过程中未被转换的部分。如果字符串中包含非十六进制字符,`endptr` 将指向这个字符。
你可以在程序中调用该函数来进行十六进制转十进制的操作,例如:
```c
#include <stdio.h>
unsigned long hex_to_decimal(const char *hex_str);
int main() {
const char *hex_str = "1A2B3C";
unsigned long decimal = hex_to_decimal(hex_str);
printf("%s in hexadecimal is %lu in decimal.\n", hex_str, decimal);
return 0;
}
```
输出结果:
```
1A2B3C in hexadecimal is 17150076 in decimal.
```
阅读全文