有没有办法将所有参数作为单个字符串接受?

问题描述 投票:0回答:1

例如,

输入:

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文件,或者它是特定于控制台的?

c dos c89 turbo-c
1个回答
0
投票

我想要一种在单个指针中获取所有参数的方法,该指针在结尾处终止。

使用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

© www.soinside.com 2019 - 2024. All rights reserved.