gpt4 book ai didi

在C中将字符串转换为十六进制整数

转载 作者:太空宇宙 更新时间:2023-11-04 02:09:00 24 4
gpt4 key购买 nike

我有以下 C 字符串

"72e4247d3c91f424c62d909d7c1553a5"

它由 32 个十六进制数字组成。它是一个包含 4 个十六进制整数的数组。我怎样才能从这个数组中取回整数形式的数字?

最佳答案

您必须分别解析四个 32 位/8 位十六进制数字 block 。最简单的方法是

#include <stdint.h>
#include <stdlib.h>
#include <string.h>

void parse_hex4(char const *str, uint32_t num[4])
{
char buf[9]; // 8 hex digits + NUL

buf[8] = '\0';
for (int i=0; i<4; i++) {
memcpy(buf, str + i * 8, 8);
num[i] = strtoul(buf, NULL, 16);
}
}

这假设 str 被零填充为恰好 32 个字符长,并且它不进行输入验证。如果您使用的是来自 Redmond 的编译器,即 stuck in the 1980 ,使用 unsigned long 而不是 uint32_t

关于在C中将字符串转换为十六进制整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16900424/

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