Моя программа должна иметь возможность создавать новые структуры и хранить их в массиве, однако команды для хранения и отображения сложностей представляют собой сложность.C - разделительные строки во входном потоке
- Чтобы создать новую переменную структуры в массиве, то пользователь вводит «набор VarName varcontents
- Чтобы отобразить содержимое переменной, пользователь вводит„набор VarName“
- Чтобы отобразить все переменные, пользователь вводит «набор»
Я не могу достаточно выяснить, как проверить, если есть несколько строк («установить» «перем» «varcontents») или, если есть только «набор»
char command[2][5] = { "set", "clear"};
printf("prompt> ");
scanf("%s",inputString);
if(strncmp(inputString,command[0],5) == 0)
{
//code to create new struct, display structs etc...
}
else if(strncmp(inputString,command[1],5) == 0)
{
//code to clear struct
}
Прямо сейчас цикл if проходит только в том случае, если пользователь вводит «установлен». Я мог бы, вероятно, сравнить первые несколько букв, а затем взять полное сравнение и вычесть первые несколько символов, чтобы сгенерировать имя новой структуры, но это кажется слишком сложным, должно быть более простое решение.
Любая помощь приветствуется!
использовать 'malloc()/calloc()' в блоке if требуемого типа –
Не было бы намного проще, если бы вы разобрали строку сначала, используя что-то вроде 'strtok'? – Duck
Предоставьте больше примеров ожидаемого ввода. – chux