c sscanf with character delimiter

时间:2012-09-29 17:00:33

标签: c io scanf

我有一个

形式的输入字符串
char *s = "one.two three"

我希望将它分成3个字符串变量。 我在做

sscanf(s, "%s.%s %s", one, two, three);

但它在“one.two”中读取变量1的字符串。我该如何处理“。”和sscanf的空白?

1 个答案:

答案 0 :(得分:3)

%s说明符仅对空格停止。尝试类似:

sscanf(s, "%[^.].%s %s", one, two, three);

有趣的是,可能无法为"%s.%s %s"生成可接受的输入,因为%s仅针对空格停止,.必须立即跟随它。