【发布时间】:2015-04-16 03:01:18
【问题描述】:
如果给定一个字符串“192f3c”,我该如何操作这个字符串,以便能够将其读取为十六进制值“19”、“2f”和“3c”?
我正在用 C 编程。
////////////////////////
很抱歉造成混乱。希望这会澄清。 我正在尝试将哈希值与给定的哈希值进行比较。
int main(int argc, char *argv[]) {
/* hashing done here with sha1 and stored in "value" */
if (argv[1] == value) {
printf("%s\n", "hash matches");
} else {
printf("%s\n", "hash fails");
}
return 0;
}
所以一般的要点是如果执行“./a.out 3f3c”,它会告诉我散列值是否与输入值匹配。
当我尝试将字符串与十六进制的实际哈希值进行比较时,问题就出现了。所以我想弄清楚如何转换一个或另一个,以便我可以比较两者。
【问题讨论】:
-
一次获取两个字符,放入另一个字符串?
-
有没有办法将这两个当前是字符串的字符视为十六进制值?
-
你应该向我们展示你到目前为止编写的代码并解释错误在哪里。不过,您正在寻找的功能是
sscanf()。 -
您想要这样的打印输出:"19 2F 3C" ... 每个字节用空格分隔吗?
-
从示例输入 (
"192f3c") 你想要三个 字符串 每个包含两个字符,还是想要三个 整数 (@987654324 @、int、unsigned等)?你的用例是什么?你打算如何处理这三个独立的“数字”?
标签: c