一个HexToInt的C函数
时间: 2024-02-03 09:11:51 浏览: 16
下面是一个将十六进制字符串转换为整数的C函数:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int hexToInt(char *hexStr) {
int len = strlen(hexStr);
int result = 0;
int base = 1;
int i;
// 从右到左遍历十六进制字符串
for (i = len - 1; i >= 0; i--) {
if (isxdigit(hexStr[i])) {
// 如果是数字或字母,则转换为对应的十进制整数
if (isdigit(hexStr[i])) {
result += (hexStr[i] - '0') * base;
} else {
result += (toupper(hexStr[i]) - 'A' + 10) * base;
}
base *= 16; // 更新基数
} else {
// 如果出现非法字符,则返回0
return 0;
}
}
return result;
}
```
该函数首先遍历十六进制字符串,从右往左依次处理每个字符并转换为对应的十进制整数。如果遇到非法字符,函数会返回0。