【发布时间】:2020-02-20 12:34:36
【问题描述】:
例如,
输入:
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
现在我需要一个指针中的 hello world。
我知道**char 不能按我想要的方式工作..
但是有没有什么有效的方法,而不是计算每个参数的长度,malloc-ing 那么多字节,然后将它连接到分配的内存?
char** 的一些访问说明符可能吗?
我正在尝试向 DOSBox 添加一个命令echo(,所以基本上是echo params,然后打印一个换行符。就是这样。
另外,有没有办法排除识别没有空格的 exe 或者它是特定于控制台的?
【问题讨论】:
-
为什么不只是
myexe "hello world"? -
你不能在
myexe中影响它,但你可以调用myexe "hello word"然后整个字符串在argv[1]中 -
您使用模糊的术语来描述您想要什么。 更高效不是一个特定的规范。如果您真的需要帮助解决问题,请用术语描述问题所在,并使用minimal reproducible example 来说明您正在尝试做什么。
-
“模拟
echo(命令”是指“回显空行”吗?在 DOS 中你可以使用echo/代替。