例如,
输入:
echo( hello world
程序:
#include<stdio.h>
int main(int n,char** args){
// Replace all the '\0' with ' '
system(args[1]);
return printf("\n");
}
输出:
hello World
现在我需要指针中的世界。
[我知道**char
无法按照我想要的方式工作。
但是有什么有效的出路,而不是计算每个参数的长度,而是分配许多字节,然后将其串联到分配的内存中?
也许有一些char**
的访问说明符?
我正在尝试向DOSBox添加echo(
命令,因此基本上是echo params
,然后打印换行符。就这样。
而且,有没有什么方法可以排除没有空格的exe文件,或者它是特定于控制台的?
我想要一种在单个指针中获取所有参数的方法,该指针在结尾处终止。
使用main()
功能的任何一种形式:
int main(int argc, char *argv[]) {...};
int main(int argc, char **argv) {...};
C main()
函数的等效签名,将允许您传递任意数量的参数,每个参数的大小均不相同。如果要传递包含多个参数的单个字符串,只需传递带有某种分隔符的单个字符串即可。如果定界符是空格(" "
),则根据behavior of the C main()
function command line argument的定义,需要将它们用C main()
包围起来:
说您的exe名称为prog.exe
"
将全部包含在一个变量中:prog this,is,one,argument
prog "this is one argument" //double quotes provide cohesion between space delimited command line arguments
prog this-is-one-argument