簡體   English   中英

將命令行arg復制到變量C

[英]Copy command line arg to a variable C

如何將命令行arg復制到c的變量? 如果要執行以下操作。

myprog "Hello, world!"

我想將參數的值存儲在char變量中。 不知道我是否在朝正確的方向前進。

假設始終僅傳遞1個參數。

int main (int argc, char  *argv[]){

  int len;
  len=strlen(argv[1]);
  char *array;

  array= malloc((len +1) * sizeof(char));
  int i;
  for(i=0;i<=len;i++){

    // This does not work... am a little lost
    array[i]=*(argv+1)[i];

  }
...
}

有人可以指出我正確的方向。

如果您不打算操縱該參數,則可以復制指針,如下所示:

int main(int argc, char* argv[]) {
    char* array;

    array = argv[1];

    ...
}

否則,您可以像這樣復制字符串:

int main(int argc, char* argv[]) {
    char* array;

    array = strdup(argv[1]);
}

看起來像是運算符優先級的問題。 當您需要的代碼是(*(argv+1))[i]時,代碼*(argv+1)[i]被評估為*((argv+1)[i]) 您最好只使用argv[i][0]

評估為*((argv+1)[i])等於*(*((argv+1)+i)) *(*(argv+1+i)) *(argv[i+1])試圖選擇參數#1到len + 1的第一個字符。

通常,如果使用下標而不是指針算術,則代碼會更清晰。 最好不要使用指針算法來解決求職面試中的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM