【发布时间】:2011-08-05 00:25:32
【问题描述】:
我需要一些帮助来解析一行文本。正在解析的文本行是用户输入。
我正在尝试解析其中有管道的东西。
例如:你好世界 |一二
我可以将管道前的单词放入 ArgList。但是想不通怎么弄 在管道进入 ArgList2 之后获取单词。管道符号不需要存储在任何地方。
基本上,我如何获得以下内容?
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 中吗?
最好的方法是什么?
【问题讨论】:
-
运行这段代码会发生什么?