我有这些十六进制字符串:
0F54C47A
B97798C9
348C211B
0911F13F
416E9759
他们是五个人的结果
printf("%08X\n", sha_digest.Message_Digest[i]);
调用我从0到4运行的地方。
我想连接这些字符串以制作一个大字符串,例如
0F54C47AB97798C9348C211B0911F13F416E9759
并且能够使用char *
变量引用该字符串。
有没有办法在C中完成这个?我知道C ++有选项,但我的程序是用C语言编写的。
非常感谢您的帮助。
答案 0 :(得分:1)
在C中,字符串是字符数组,以null结尾。你可以做到的一种方法是
char buf[8 * 5 + 1];
char *p = buf;
buf[0] = 0;
for (int i = 0; i < 5; i++) {
sprintf(p, "%8x", sha_digest.Message_Digest[i]);
p += 8;
}
答案 1 :(得分:0)
char buffer[41];
sprintf(buffer, "%08X%08X%08X%08X%08X",
sha_digest.Message_Digest[0],
sha_digest.Message_Digest[1],
sha_digest.Message_Digest[2],
sha_digest.Message_Digest[3],
sha_digest.Message_Digest[4]);
buffer
是包含0F54C47AB97798C9348C211B0911F13F416E9759
的C风格字符串。