c - 在 C 中将字符数组打印为十六进制

标签 c arrays hex converters radix

我有一个名为 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/

相关文章:

php - 如何从 php 中的值数组中对特定字符串进行排序?

algorithm - 如何用少于 2*n 个字符表示一个 n 字节的数组

python - 为脚本设置临时环境变量

c - while 循环要求输入两次,而不是第一次中断

javascript - 从 TaffyDB 输出数据

C删除数组元素

c - 获取数组声明错误

c - PPM 中显示的矩形中的 4 个三角形

c# - 在 C# 中将单个十六进制字符转换为其字节值

javascript - 减轻 javascript 中的十六进制代码