【发布时间】:2014-07-27 20:25:52
【问题描述】:
我正在尝试用 {white_space} 符号分割一些字符串。 顺便说一句,在某些拆分中存在问题。这意味着,我想用 {white_space} 符号分割,但也要引用子字符串。
例子,
char *pch;
char str[] = "hello \"Stack Overflow\" good luck!";
pch = strtok(str," ");
while (pch != NULL)
{
printf ("%s\n",pch);
pch = strtok(NULL, " ");
}
这会给我
hello
"Stack
Overflow"
good
luck!
但我想要的,如你所知,
hello
Stack Overflow
good
luck!
有什么建议或想法吗?
【问题讨论】:
-
你正在分割空间,你得到的正是你想要的。引号只是字符串中的另一个字符。
-
您必须自己进行解析:检查您是否介于开头
"和结尾"之间。 -
如果我为你写一个 C++ 实现可以吗?我懒得用 C 写这个了。
-
@Happington 哦!我已经在里面完成了编辑问题!有一些误解来解释我的问题:
-
无论如何,看看 C++ 会很有趣。 strtok,有点坏,例如不处理空字段。