我需要一些幫助解析一行文本。正在分析的文本行是用戶輸入。需要幫助解析字符串
我想解析一些有管道的東西。
例如:hello world |一個兩個
我可以在管道前進入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中?
什麼是最好的方式去做這件事?
當你運行這段代碼時會發生什麼? –