Tôi có mã sau đây sao chép chuỗi đối số vào mảng char.Sao chép chuỗi từ argv sang mảng char trong C
char *str = malloc(strlen(argv[1]) + 1);
strcpy(str, argv[1]);
printf("%s\n", str);
Tại sao khi tôi vượt qua sau đối số:
$6$4MfvmFOaDUaa5bfr$cvtrefr
tôi nhận được:
MfvmFOaDUaa5bfr
Thay vì toàn bộ chuỗi. Một nơi nào đó tôi bị mất số đầu tiên. Tôi đã thử nhiều phương pháp khác nhau và mỗi phương thức hoạt động giống nhau hoặc không hoạt động.
Chìa khóa của tôi chỉ nhận được muối (trong trường hợp này) 4MfvmFOaDUaa5bfr
hoặc $6$4MfvmFOaDUaa5bfr
không có ký tự $ thứ ba. Tôi cố gắng để có được phương pháp để sao chép chuỗi trong khi tôi đáp ứng $ thứ ba và sau đó ngừng sao chép.