我有以下一个 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");
我意识到这段代码不正确,因为我试图在这里打印为十六进制而不是字符......但是当我尝试使用 %02x 时,垃圾会被打印出来。
我怎样才能确保 01 和 1 将被视为平等?我意识到这可能因字节顺序而异,因此我想不出一个通用的解决方案。我想避免使用 atoi 所以想知道是否有另一种方法(主要是因为我没有真正的方法知道密钥是否为整数)
谢谢