c - 如何制作 argv[1] 的副本
问题描述
我如何将 argv[1] 复制到可用的 char * I 中并使用单词作为密钥进行加密,因此我需要能够拥有 argv[1] 的副本才能使用 char *。
解决方案
您可能错过了已经argv[1]
是a的点,因为它是 的数组,但也许您需要修改一些难以理解的原因: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]
(当然,如果您使用方法 2,则应确保缓冲区足够长以接受用户的输入)