Я пытаюсь взять строку, вводимую пользователем, и выполнить синтаксический анализ в массиве с именем char * complete_line [100]; где каждое слово помещается в отдельный индекс массива, но если часть строки заключена в кавычки, это следует поместить в один индекс. Итак, если у меня есть
char buffer[1024]={0,};
fgets(buffer, 1024, stdin);
пример ввода: "word filename.txt" это строка, которая занимает один индекс в выходном массиве ";
tokenizer=strtok(buffer," ");//break up by spaces
do{
if(strchr(tokenizer,'"')){//check is a word starts with a "
is_string=YES;
entire_line[i]=tokenizer;// if so, put that word into current index
tokenizer=strtok(NULL,"\""); //should get rest of string until end "
strcat(entire_line[i],tokenizer); //append the two together, ill take care of the missing space once i figure out this issue
}
entire_line[i]=tokenizer;
i++;
}while((tokenizer=strtok(NULL," \n"))!=NULL);
Это явно не работает и приближается, только если строка, заключенная в двойные кавычки, находится в конце входной строки, но я мог бы иметь ввод: слово «это текст, который будет введен пользователем» filename.txt Пытался понять это на время всегда где-то застреваю. Благодарность