Я новичок в C, и у меня были проблемы с упрощением этой программы. Я пытаюсь инициализировать name
один раз и strcat
name
до command
один раз. Это исполняемый файл командной строки, который принимает два аргумента и один необязательный аргумент для имени файла «new py» или «new txt» или «new py script». Я запускаю Windows MinGW для компиляции.Sprintf с указателями, константами и форматированием строк
Существует ли тип, позволяющий хранить значение argv и константу строки с одной строкой?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]) {
char command[100] = "cd . > ";
char *type = argv[1];
char * name;
strcat(command,"\"");
if (argc == 3) {
char * name = argv[2];
//strcat(command,name);
} else {
char name[20];
sprintf(name,"new %s file",type);
//strcat(command,str);
}
strcat(command,name);
strcat(command,".");
strcat(command,type);
strcat(command,"\"");
system(command);
return 0;
}
'char * name = argv [2];' и 'char name [20];' находятся в локальной области блока if-else. Исправить пример: 'char name [20]; if (argc == 3) {strcpy (имя, argv [2]); } else {sprintf (имя, «новый файл% s», тип); } strcat (команда, имя); ' – BLUEPIXY
Спасибо. На данный момент это исправлено. Как вы думаете, я мог бы «sprintf» остальную команду вместо strcats? –
Либо в вашем любимом. – BLUEPIXY