У меня проблема с использованием strtok в C. Я получаю пользовательский ввод из командной строки, используя fgets, и я хочу разметить его с помощью канала ("|") в качестве разделителя и поместить результат в переменную с двойным указателем. Вот мой код:
char** argv;
char *token;
token = strtok(userInput, "|");
while(token != NULL){
*(argv++) = token;
token = strtok(NULL, "|");
}
*argv = '\0';
Затем я использую этот код, чтобы проверить, хорошо ли он токенизирован.
while(*argv!= NULL)
{
if((strcmp(*argv, "|") == 0){
count = count + 1;
}
argv++;
}
printf("%d pipes", count);
Но это не работает. char** argv ничего не содержит. Выполнение кода останавливается и возвращается -1. Когда я пытаюсь напечатать argv, argv не содержит значений.
Любые идеи, пожалуйста? Спасибо.
Редактировать:
Я хочу сделать это
userInput = "abc|cde";
После использования стрток. Я хочу иметь **argv
**argv = "abc";