首页 > 解决方案 > 如何制作 argv[1] 的副本

问题描述

我如何将 argv[1] 复制到可用的 char * I 中并使用单词作为密钥进行加密,因此我需要能够拥有 argv[1] 的副本才能使用 char *。

标签: carrayscommand-linecommand-line-argumentsargv

解决方案


您可能错过了已经argv[1]是a的点,因为它是 的数组,但也许您需要修改一些难以理解的原因:char *argvchar*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,则应确保缓冲区足够长以接受用户的输入)


推荐阅读