Как сделать копию argv [1] - PullRequest
       36

Как сделать копию argv [1]

0 голосов
/ 01 сентября 2018

Как бы я скопировал argv [1] в пригодный для использования символ * Я и шифрую, используя слово в качестве ключа, поэтому мне нужно иметь возможность иметь копию argv [1] для использования символа *.

1 Ответ

0 голосов
/ 01 сентября 2018

Возможно, вы упускаете момент, когда 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] (и, конечно, если вы используете method2, вы должны убедиться, что ваш буфер достаточно длинный, чтобы принять ввод пользователя)

...