-2

これらの16進数の文字列があります: 0F54C47A B97798C9 348C211B 0911F13F 416E9759

これらは、 printf("%08X\n", sha_digest.Message_Digest[i]);i が 0 から 4 までの 5 回の呼び出しの結果です。

これらの文字列を連結して のような 1 つの大きな文字列を作成 し、その文字列を変数0F54C47AB97798C9348C211B0911F13F416E9759で参照できるようにしたいと考えています。char *

Cでこれを達成する方法はありますか? C++ にオプションがあることは知っていますが、私のプログラムは C で作成されています。

すべての助けに感謝します。

4

2 に答える 2

1

C では、文字列はヌルで終了する文字の配列です。あなたがそれを行うことができる1つの方法は

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;
}
于 2013-03-24T05:16:15.733 に答える
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を含む C スタイルの文字列0F54C47AB97798C9348C211B0911F13F416E9759です。

于 2013-03-24T05:17:05.493 に答える