繁体   English   中英

将字符串从argv复制到C中的char数组

[英]Copying string from argv to char array in C

我有以下代码将参数字符串复制到char数组。

char *str = malloc(strlen(argv[1]) + 1);
strcpy(str, argv[1]);

printf("%s\n", str);

为什么当我传递以下参数时:

$6$4MfvmFOaDUaa5bfr$cvtrefr

我明白了:

MfvmFOaDUaa5bfr

而不是整个字符串。 我失去了第一个号码。 我尝试了各种方法,每个方法都相同或不起作用。

我的关键是只获得盐(在这种情况下) 4MfvmFOaDUaa5bfr$6$4MfvmFOaDUaa5bfr没有第三个$字符。 当我遇到第三个$然后停止复制时,我也尝试获取复制字符串的方法。

因为在字符串$6$4MfvmFOaDUaa5bfr$cvtrefr$6$4$cvtrefr由shell扩展为位置参数和变量,它们都是空的。

用单引号传递参数:

./a.out '$6$4MfvmFOaDUaa5bfr$cvtrefr'

这将阻止壳扩展。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM