gpt4 book ai didi

c - 如何在 c 中将字符串转换为十六进制,反之亦然?

转载 作者:太空宇宙 更新时间:2023-11-04 01:49:44 27 4
gpt4 key购买 nike

如何在 c 中将字符串转换为十六进制,反之亦然。例如:像“thank you”这样的字符串到十六进制格式:7468616e6b20796f75 从十六进制 7468616e6b20796f75 到字符串:“thank you”。有什么方法可以做到这一点吗?

提前致谢

最佳答案

sprintfsscanf 就足够了。

#include <stdio.h>
#include <string.h>

int main(void) {
char text[] = "thank you";
int len = strlen(text);

char hex[100], string[50];

// Convert text to hex.
for (int i = 0, j = 0; i < len; ++i, j += 2)
sprintf(hex + j, "%02x", text[i] & 0xff);

printf("'%s' in hex is %s.\n", text, hex);

// Convert the hex back to a string.
len = strlen(hex);
for (int i = 0, j = 0; j < len; ++i, j += 2) {
int val[1];
sscanf(hex + j, "%2x", val);
string[i] = val[0];
string[i + 1] = '\0';
}

printf("%s as a string is '%s'.\n", hex, string);

return 0;
}

现在

$ ./a.out
'thank you' in hex is 7468616e6b20796f75.
7468616e6b20796f75 as a string is 'thank you'.

关于c - 如何在 c 中将字符串转换为十六进制,反之亦然?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46210513/

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