我正在尝试将字符串排序为 C 中的不同变量(当我说字符串时,我的意思是 char 数组)。该字符串包含较小的“块”,由制表符分隔,我希望 sscanf 每次调用时都将下一个“块”放入字符串中。
例如,如果字符串是00:00:00:00 12345 abcd
,我希望第一个 sscanf 调用放入00:00:00:00
字符串,下一个 sscanf 调用放入12345
字符串等。
我不明白为什么我的代码不起作用。我有sscanf(s, "%[^\t]%*c", buf)
,(我认为)应该告诉 sscanf 读取所有内容直到一个制表符,然后%*c
告诉它读取但丢弃制表符(这样下次调用 sscanf 时,没有前导制表符)。分隔字符串中的块的制表符永远不会超过 1 个。
我敢肯定有比使用 sscanf 更好的方法,如果有人告诉我,那就太好了,但我也想弄清楚这一点,因为它似乎很容易烦人而且我没有知道为什么它不起作用。谢谢你的帮助