所以我嘗試從命令列獲取未知最大長度的用戶輸入。能夠執行類似操作的程式需要動態輸入字串(可能是字符陣列?)。結果應該是這樣的
./a.out st1 你的 str 是 ...
我能夠想出的唯一代碼如下
int main (int argc, char* argv[]){
...
char str1[];
str1 = argv[1];
printf("your...);
...
}
uj5u.com熱心網友回復:
具有空元素數量的塊作用域陣列的宣告:
char str1[];
是不正確的。此外,陣列沒有賦值運算子:
str1 = argv[1];
你可以宣告一個指標:
char *str1;
str1 = argv[1];
printf("your...);
uj5u.com熱心網友回復:
C 將以argv空指標終止,并且argv 是可修改的,因此它實際上很容易實作,shift就像在bash 腳本中一樣。您的基礎可能如下所示。
#include <stdio.h>
int main(int argc, char *argv[]) {
char *arg;
if(!argc || !argv[0]) return 0; /* Defensive */
while(arg = *( argv))
printf("do something with %s\n", arg);
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/386836.html
下一篇:從GDB解碼ARM指令
