Например,
Вход:
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**
?
Я пытаюсь добавить echo(
команду в DOSBox, поэтому в основном echo params
, а затем напечатать новую строку. Вот и все.
Кроме того, есть ли способ исключить распознавание exe без пробелов или это зависит от консоли?
myexe "hello world"
? - person Sander De Dycker   schedule 20.02.2020myexe
, но вы можете вызватьmyexe "hello word"
, тогда вся строка будет вargv[1]
- person Ingo Leonhardt   schedule 20.02.2020echo(
в свой DOSBox... Но большое спасибо, это помогло мне решить еще одну проблему. - person Hello World   schedule 20.02.2020"this,is,a,beautiful,day"
, который можно легко проанализировать из одной строки, содержащейся в одной переменнойargv[1]
. - person ryyker   schedule 20.02.2020echo( Hello World
--› система(argsfrom1) + printf(\n) - person Hello World   schedule 20.02.2020argv
перед вызовомmain
. Итак, вам нужен доступ к этой версии командной строки более низкого уровня. В Windows для этого есть функцияGetCommandLine
, но я не знаю, что эквивалентно ей в библиотеках Turbo C для DOS. - person Ian Abbott   schedule 20.02.2020echo(
вы имеете в виду эхо пустой строки? В DOS вместо этого можно использоватьecho/
. - person Stephan   schedule 20.02.2020:D
- person Stephan   schedule 21.02.2020