В настоящее время у меня есть фрагмент кода, который сравнивает 1 вход с переменной ... , например, когда я ввожу «GET», он сравнивает его со строкой, которую я установил, а затем открывает файл. но что, если я хочу сравнить более одной строки во входном? например, если кто-то вводит «GET ./homepage.html»сравнить несколько строк в одном входе в C
поэтому первая строка GET указывает, что они хотят получить файл, а вторая строка «./homepage.html» - это файл, который они хотят просмотреть?
Мои мысли по этому поводу состоят в том, чтобы построить массив с комбинацией GET + всех возможных комбинаций файлов, а затем использовать strcomp
, чтобы выбрать правильный и открыть указанный файл ..? но я не 100% от того, как я бы связал свой ввод, чтобы сравнить с целым массивом?
Текущий код ниже, очень простая строка сравнения -> открывает и записывает файл в stdout.
int main(int argc, char *argv[]) {
MainStruct val;
parse_config(&val);
char userInput[100] = "success.txt";
char temp[100];
if (checkaccess() == 0)
{
parse_config(&val);
} else {
fprintf(stderr,"unable to load config file\n");
}
printf("Connected to Domain : %s", val.domain);
fgets(temp, 6, stdin);
temp[strcspn(temp, "\n")] = '\0';
if(strcmp(temp, "GET /") == 0)
{
openfile(userInput);
} else {
printf("that was not a very valid command you gave\n");
}
}
EDIT: я должен также отметить, что вторая строка ввода должна также == UserInput, что функция openfile
читает не уверен, как отделить две строки..
Я хотел бы использовать strtok разделить строку на лексемы и чем обрабатывать их. В качестве альтернативы вы можете использовать getopt, который является стандартом для обработки входных параметров. –
@ IshayPeled вы могли бы привести краткий пример? – LewisFletch
Несомненно, вы можете найти пример здесь: http: //www.tutorialspoint.com/c_standard_library/c_function_strtok.htm –