我有一个名为 char **str
的二维数组(由 malloc 分配)。假设 str[0] 有字符串“hello”。我将如何打印该十六进制?
我尝试了 printf("%d\n", (unsigned char)strtol(str[0], NULL, 16))
,但它没有以十六进制打印出来。
如有任何帮助,我们将不胜感激,谢谢!
最佳答案
您对 strtol
的功能感到困惑。如果您有一个表示十六进制数字的字符串,您可以像使用 strtol
一样使用:
char s[] = "ff2d";
int n = strtol(s, NULL, 16);
printf("Number: %d\n", n);
当您想以十六进制打印字符串的字符时,请为字符串的每个字符使用 %x
格式说明符。
char s[] = "Hello";
char* cp = s;
for ( ; *cp != '\0'; ++cp )
{
printf("%02x", *cp);
}
关于c - 在 C 中将字符数组打印为十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32675361/