C的十六进制函数是否有char?

VGe*_*rge 4 c hex

我有一个char数组与文本文件中的数据,我需要将其转换为十六进制格式.C语言有这样的功能吗?

先感谢您!

Joh*_*ode 5

如果我正确理解了这个问题(不保证那里),你有一个文本字符串表示十进制格式的数字("1234"),并且你想将它转换为十六进制格式的字符串("4d2").

假设是正确的,你最好的选择将是使用输入字符串为整数或者转换sscanf()或者strtol(),然后用sprintf()%x转换说明写的十六进制版本到另一个字符串:

char text[] = "1234";
char result[SIZE]; // where SIZE is big enough to hold any converted value
int val;

val = (int) strtol(text, NULL, 0); // error checking omitted for brevity
sprintf(result, "%x", val);
Run Code Online (Sandbox Code Playgroud)


mct*_*ylr 2

您可以使用atoisprintf/ snprintf。这是一个简单的例子。

char* c = "23";
int number = atoi(c);
snprintf( buf, sizeof(buf), "%x", number );
Run Code Online (Sandbox Code Playgroud)