[英]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.