gpt4 book ai didi

c - 我如何将用户 c 的十六进制输入放入数组中

转载 作者:行者123 更新时间:2023-11-30 16:50:15 25 4
gpt4 key购买 nike

我会将用户的十六进制输入放入buffer数组中,但我不接受它,scanf不合适。输入这样的数据(0x 06 41 42 43 0f 52 53)。然后我想将数组的某些部分的字符串转换为整数类型。我使用了atoi,最好的方法是什么?

#include <stdio.h>

int main(){

char buffer[1000];
char dest[3];
int x;

//scanf("%s",buffer);
x=atoi(strncpy(dest,buffer+1,4))
}

最佳答案

以下简单函数将十六进制数字的字符串转换为整数:

int atox(const char *s)
{
int x= 0;
while (*s) {
x= x*16+(*s>'9'?(toupper(*s)-'A'+10):*s-'0');
s++;
}
return x;
}

并这样调用它:

printf("%02x\n",atox("42"));
printf("%02x\n",atox("a1"));
printf("%02x\n",atox("A1"));

请注意,该字符串必须与要转换的字符串完全相同,因此不能有空格或其他内容。

关于c - 我如何将用户 c 的十六进制输入放入数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42268076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com