次の char* キーがあります。これは、整数またはテキストのいずれかを含むことができる char 配列です。したがって、キーは値 3 または tom を持つことができます。
格納されたデータを含む byte* データ配列があります。キーがデータと等しいかどうかをテストする必要があります。
私のロジックは現在、次のようなものです。
int j = 0 ;
for (j = 0; j < len; j++) {
sprintf(key_cmp, "%02x", (ulong)*data++);
}
if (!strcmp(key, key_cmp)) fprintf(stderr, "Equal \n");
ここでは char ではなく 16 進数として出力しようとしているため、このコードが正しくないことに気付きました... しかし、%02x を使用しようとすると、ガベージが出力されます。
01 と 1 が同等に扱われるようにするにはどうすればよいですか? これはバイト順によって異なる可能性があることを認識しているため、一般的な解決策は考えられません。私はatoiの使用を避けたいので、別の方法があるかどうか疑問に思っていました(ほとんどの場合、キーが整数かどうかを知る方法がないためです)
ありがとう