如果我正确理解了这个问题(不保证那里),你有一个文本字符串表示十进制格式的数字("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)
您可以使用atoi和sprintf/ snprintf。这是一个简单的例子。
char* c = "23";
int number = atoi(c);
snprintf( buf, sizeof(buf), "%x", number );
Run Code Online (Sandbox Code Playgroud)