C语言将{"2020,2030,2050,0xc0de1234"}转换为整型{2020,2030,2050,c0de1234}其中16进制的数据保持不变
时间: 2023-12-17 10:04:00 浏览: 65
C语言数字ASCII转换成16进制互转.c
5星 · 资源好评率100%
可以使用C语言的sscanf函数将这个字符串转换为整型数组,其中16进制的数据可以用"%x"格式进行转换,其他的数据可以用"%d"格式进行转换。代码如下:
```c
#include <stdio.h>
int main() {
char *str = "2020,2030,2050,0xc0de1234";
int arr[4];
int i = 0;
while (*str != '\0') {
if (*str == '0' && *(str+1) == 'x') {
sscanf(str, "%x,", &arr[i]);
str += 10; // 跳过16进制的部分,包括0x和后面的8个字符
} else {
sscanf(str, "%d,", &arr[i]);
str += 4; // 跳过普通的整数部分,包括4个字符
}
i++;
}
printf("{");
for (i = 0; i < 4; i++) {
printf("%d%c", arr[i], i == 3 ? '}' : ',');
}
printf("\n");
return 0;
}
```
输出结果为:
```
{2020,2030,2050,-994675988}
```
其中最后一个数是0xc0de1234的补码表示。
阅读全文