0
由於gets()
(這是一個輸入到我的shell的命令),我有一個字符數組,例如「ls -l \ | sort」。現在我想要的是一個char ***,它將持有指向特定命令的指針(如此分割|)。以我的例子:將char數組解析爲*** char
*1[] = {"ls", "-l", "\", null}
*2[] = {"sort", null}
和我的char ***將是{1,2}
。事情是,我不知道在這個字符數組中會給我多少個字符串,所以我不能預先定義這個字符串。我現在所擁有的僅僅是用空格將字符串分解爲單詞,而我無法弄清楚如何去做我實際需要的東西。
int parse(char *line, char **argv)
{
while (*line != '\0') {
while (*line == ' ' || *line == '\t' || *line == '\n')
*line++ = '\0';
*argv++ = line;
while (*line != '\0' && *line != ' ' && *line != '\t' && *line != '\n'){
line++;
}
}
*argv = '\0';
return 0;
}
目前還不清楚你想要達到的目標。你如何從標準輸入讀取? – 2014-11-23 16:07:33
將char()放入char line [1024]中,然後將此行變量傳遞給parse(char * line,char ** argv),其中argv爲空,並準備由此函數填充。 – user3885166 2014-11-23 16:09:05
你想將一個字符串拆分成一個單詞數組? – 2014-11-23 16:09:56