c - 在 C 中,如何将 char[] 打印为转义的十六进制?

标签 c string char hex

假设我有:

char [] = "cat"

我想用转义的十六进制打印它,所以它看起来像:

"\x63\x61\x74"

有没有办法在不使用转义十六进制解析/构造新的 char[] 的情况下做到这一点?

最佳答案

你不需要构建一个新的 char[],一个带有 printf 的循环就可以了:

char c[] = "cat";
size_t len = strlen(c);
for (size_t i = 0 ; i != len ; i++) {
    printf("\\x%02x", (unsigned char)c[i]);
}

Demo.

关于c - 在 C 中,如何将 char[] 打印为转义的十六进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38965676/

相关文章:

c - 在 main.c 中定义其他头文件所需的宏的传统方法是什么?

java - 通过 exec 从 C 运行 jar

来自 mpfr 库的 Cygwin 的 gcc 编译器警告

python - 如何在python中修剪字符串的n个字符?

比较 char 数组的两个值

objective-c - 使用 clang 在命令行上编译多个 Objective-C 文件

c# - 安全地对多字节字符进行子串 c#

string - 在 Perl 中以逗号分隔的列表中的字符串部分中的字母替换数字

c - 随机 int 1-255 到 C 中的字符

C++ char 数组的动态数组