因此,我尝试从命令行获取未知最大长度的用户输入。程序要想做到这一点,需要动态输入字符串(可能是char数组?(。结果应该类似
/a.out st1你的str是。。。
我唯一能想到的代码是以下
int main (int argc, char* argv[]){
...
char str1[];
str1 = argv[1];
printf("your...);
...
}
具有空元素数的块作用域数组的声明:
char str1[];
不正确。此外,数组没有赋值运算符:
str1 = argv[1];
你可以声明一个指针:
char *str1;
str1 = argv[1];
printf("your...);
C将用一个空指针终止argv
,而argv
是可修改的,因此实际上很容易像在bash脚本中那样实现shift
。您的基础可能如下所示。
#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 %sn", arg);
return 0;
}