如何复制argv [1]

时间:2018-08-31 22:12:19

标签: c arrays command-line command-line-arguments argv

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

1 个答案:

答案 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,则应确保缓冲区足够长,足以占用用户的输入)