我有以下代码,将参数字符串复制到字符数组中。
当我传递以下参数时,为什么会出现这种情况:
char *str = malloc(strlen(argv[1]) + 1);
strcpy(str, argv[1]);
printf("%s\n", str);
当我传递以下参数时,为什么会出现这种情况:
$6$4MfvmFOaDUaa5bfr$cvtrefr
我理解为:
MfvmFOaDUaa5bfr
我在某个地方丢失了第一个数字,而不是整个字符串。 我尝试了各种方法,每一种都表现得相同或者根本不起作用。
我的关键是仅获取盐(在此情况下为)4MfvmFOaDUaa5bfr
或 $6$4MfvmFOaDUaa5bfr
没有第三个 $ 字符。 我也尝试获取复制字符串的方法,当我遇到第三个 $ 字符时停止复制。