C语言将{"512,512,0xab12"}转换为整型{512,512,43794}其中16进制的数据转换为10进制
时间: 2024-03-19 07:43:20 浏览: 65
C语言实现十六进制数据转十进制数据
可以使用C语言的sscanf函数将这个字符串转换为整型数组,其中16进制的数据可以用"%x"格式进行转换,其他的数据可以用"%d"格式进行转换。代码如下:
```c
#include <stdio.h>
int main() {
char *str = "512,512,0xab12";
int arr[3];
int i = 0;
while (*str != '\0') {
if (*str == '0' && *(str+1) == 'x') {
sscanf(str, "%x,", &arr[i]);
str += 6; // 跳过16进制的部分,包括0x和后面的4个字符
} else {
sscanf(str, "%d,", &arr[i]);
str += 4; // 跳过普通的整数部分,包括3个字符
}
i++;
}
printf("{");
for (i = 0; i < 3; i++) {
printf("%d%c", arr[i], i == 2 ? '}' : ',');
}
printf("\n");
return 0;
}
```
输出结果为:
```
{512,512,43794}
```
其中0xab12被转换为了十进制数43794。
阅读全文