Я создал метод parseCmd для моей программы simpleShell в C и сохранил каждый аргумент перед пробелом разделителя, который будет храниться в массиве args []. Тем не менее, я пытаюсь добавить аргументы с их соответствующими параметрами в связанный список, но у меня возникают проблемы с их получением.C - strsep splitting strings
Например, если я типа ls
, я хочу:
args[0] = "ls";
И когда я типа ls -l
, я хочу;
args[0] = "ls";
args[1] = "-l";
То, что я пытаюсь сделать здесь: если «-» обнаружен аргумент, добавьте его к предыдущему аргументу «LS» и сохранить в виде отдельной строки «Ls -l», чтобы хранить в linkedList (уже реализован).
Вот мой метод.
void parseCmd(char* cmd, char** args)
{
int i;
for(i = 0; i < MAX_LINE; i++) {
args[i] = strsep(&cmd, " ");
if (args[i] != NULL)
printf("--> %s \n",args[i]);
if(args[i] == NULL) break;
}
}
EDIT:
Я попытался следующие
if (strchr(args[i], '-'))
printf("--> %s \n", args[i]);
Но я получаю ошибку сегм.
и ваш вопрос что? –
В чем вопрос? Вы можете найти ответ, в то же время вы найдете вопрос. – 4pie0
Я пытаюсь объединить две строки в строковый массив, только если второе значение в массиве строк начинается с '-', поэтому я могу добавить параметр() с его последующими аргументами – Sean