C语言 十六进制字符串转换成int
时间: 2024-09-24 11:04:34 浏览: 42
十六进制与字符串转换
在C语言中,将十六进制字符串转换成整数可以使用标准库函数`strtol()`或者`strtoul()`,这两个函数分别处理大小写字母的情况。以下是基本步骤:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
long int hex_to_int(char hex_string[]) {
char *endptr;
long int result = strtol(hex_string, &endptr, 16);
// 检查是否转换成功,如果endptr等于hex_string,表示未结束,转换失败
if (endptr == hex_string || *endptr != '\0') {
printf("Invalid hexadecimal string.\n");
return -1; // 或者抛出异常,视情况而定
}
return result;
}
int main() {
char hex[] = "FF"; // 示例十六进制字符串
int num = hex_to_int(hex);
if (num >= 0) {
printf("The decimal equivalent is: %ld\n", num);
}
return 0;
}
```
阅读全文