Продолжаю ещё одним столбиком кода. Довёл до ума разбиение предложений на токены и упростил как мог.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
#define _CHARS " .,?!\0\n\"'"
int main(void)
{
//компьютер, создай файл 132.txt
char arg[UCHAR_MAX], * token;
for(;
{
if((token = strtok(NULL, _CHARS)) == NULL){
printf("<< ");
gets(arg);token = strtok(arg, _CHARS);}
if(strcmp(token, "компьютер") == 0)
{
if((token = strtok(NULL, _CHARS)) == NULL){
printf(">> Да?\n<< ");
gets(arg);token = strtok(arg, _CHARS);}
if(strcmp(token, "создай") == 0)
{
if((token = strtok(NULL, _CHARS)) == NULL){
printf(">> Что?\n<< ");
gets(arg);token = strtok(arg, _CHARS);}
if(strcmp(token, "файл") == 0)
{
if((token = strtok(NULL, _CHARS)) == NULL){
printf(">> Какой?\n<< ");
gets(arg);token = strtok(arg, _CHARS);}
puts(">> Файл создан");
puts(">> Что то ещё?");
}
if(strcmp(token, "каталог") == 0)
{
if((token = strtok(NULL, _CHARS)) == NULL){
printf(">> Какой?\n<< ");
gets(arg);token = strtok(arg, _CHARS);}
puts(">> Каталог создан");
puts(">> Что то ещё?");
}
}
else if(strcmp(token, "удали") == 0)
{
if((token = strtok(NULL, _CHARS)) == NULL){
printf(">> Что?\n<< ");
gets(arg);token = strtok(arg, _CHARS);}
if(strcmp(token, "файл") == 0)
{
if((token = strtok(NULL, _CHARS)) == NULL){
printf(">> Какой?\n<< ");
gets(arg);token = strtok(arg, _CHARS);}
puts(">> Файл удалён");
puts(">> Что то ещё?");
}
if(strcmp(token, "каталог") == 0)
{
if((token = strtok(NULL, _CHARS)) == NULL){
printf(">> Какой?\n<< ");
gets(arg);token = strtok(arg, _CHARS);}
puts(">> Каталог удалён");
puts(">> Что то ещё?");
}
}
else if(strcmp(token, "найди") == 0)
{
if((token = strtok(NULL, _CHARS)) == NULL){
printf(">> Что?\n<< ");
gets(arg);token = strtok(arg, _CHARS);}
if(strcmp(token, "файл") == 0)
{
if((token = strtok(NULL, _CHARS)) == NULL){
printf(">> Какой?\n<< ");
gets(arg);token = strtok(arg, _CHARS);}
puts(">> Файл найден");
puts(">> Что то ещё?");
}
if(strcmp(token, "каталог") == 0)
{
if((token = strtok(NULL, _CHARS)) == NULL){
printf(">> Какой?\n<< ");
gets(arg);token = strtok(arg, _CHARS);}
puts(">> Каталог найден");
puts(">> Что то ещё?");
}
}
}
else if(strcmp(token, "отключись") == 0)
{
break;
}
}
return 0;
}