我如何将argv [1]复制到可用的字符* 我并使用一个单词作为密钥进行加密,因此我需要能够拥有argv [1]的副本才能使用char *。
答案 0 :(得分:3)
由于argv[1]
是char *
的数组,因此您可能会忘记argv
已经 是char*
的问题,但也许您出于某些难以理解的原因,需要修改argv[1]
:
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
//Method 1
char *myCopy = strdup(argv[1]);
printf("%s\n", myCopy);
free(myCopy); myCopy = NULL;
//Method 2
char myCopy2[50];
strcpy(myCopy2, argv[1]);
printf("%s\n", myCopy2);
return 0;
}
请注意,如果用户未提供argc
,则应检查argv[1]
以避免崩溃(当然,如果您使用method2,则应确保缓冲区足够长,足以占用用户的输入)