Мне нужна помощь с разбором строки текста. Анализируемая строка текста вводится пользователем.
Я пытаюсь разобрать что-то, в чем есть труба.
Например: привет мир | один два
Я могу получить слова перед тем, как труба войдет в ArgList. Но не могу понять, как
получить слова после канала в ArgList2. Труба Symobol не нужно хранить где-либо.
В принципе, как мне получить следующее?
ArgList[0] = hello
ArgList[1] = world
ArgList2[0] = one
ArgList2[1] = two
int main(void)
{
char *ArgList[MAX_ARG_LENGTH];
char *ArgList2[MAX_ARG_LENGTH];
char buf[MAX_BUF_LENGTH];
int i = 0
printf("> ");
if(!fgets(str, MAX_BUF_LENGTH, stdin))
perror("fgets error");
ArgList[i] = strtok(bufstr, " \n");
while(ArgList[i] != NULL)
{
printf("%s", ArgList[i]);
i++;
ArgList[i] = strtok(NULL, " \n");
}
return 0;
}
Любые предложения будут оценены. Должен ли я сначала токенизировать всю пользовательскую строку ввода в ArgList, а затем переместить все после символа канала в ArgList2?
Как лучше всего это сделать?