带字符分隔符的 c sscanf

标签 c io scanf

我有一个以下形式的输入字符串

char *s = "one.two three"

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

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

但它正在读取“one.two”作为变量一的字符串。我该如何处理“.”和 sscanf 的空格?

最佳答案

%s 说明符仅在空格处停止。尝试这样的事情:

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

有趣的是,可能不可能为 "%s.%s %s" 生成可接受的输入,因为 %s 仅在一个空格处停止,但 . 必须立即跟随它。

关于带字符分隔符的 c sscanf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12654599/

相关文章:

java - 过于复杂的目录迭代结构破坏了程序的连续性和可理解性

java - 如何在workmanager Android上传递输入数组列表

php - 解析部分 html 字符串并隔离特定数字

c - 如何通过 sscanf() 获取字符串中的最后一个数字?

c - POSIX 线程和公平性(信号量)

c - 为什么 printf 在调用后不会刷新,除非格式字符串中有换行符?

c - 需要创建一个函数来调用另一个函数

c - 二叉树——通过代码追踪

c++ - 如何在 C/C++ 中以编程方式读取 linux 文件权限

c - 扫描随机数的 float ,直到 C 中的新行