c - 包含字母、空格和整数的 sscanf

标签 c scanf

我正在尝试使用 sscanf 从文本文件中读取一行,然后将其各部分保存到不同的变量中。 文本文件如下所示:

name 12345

所以我编写了以下代码:

sscanf(buffer, "%s %d", name, &number);

这很好用,但是当名称之间有空格时我该怎么办?例如

name lastname 12345

还是偶数?

name the3rd 12345

我的 sscanf 在这两个示例中不起作用。我尝试使用 [^] 但没有成功,甚至 %*s %[^0-9] %d 但也没有成功。

如有任何帮助,我们将不胜感激。

最佳答案

我建议不要试图强行解决问题。如果很难用sscanf() ,也许这不是正确的解决方案。

我建议使用实际的正则表达式(如果你有<regexp.h>,这很容易),或者使用手动解析技术来查找最后一个空格并在其上分割字符串。它可以像strrchr(buffer, ' ');一样简单毕竟。

关于c - 包含字母、空格和整数的 sscanf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41891766/

相关文章:

c - 将 scanf 交换为 fgets 和随机符号

c - 包含 fscanf 的程序无法编译

c - C中的输入切换

c - 在 C 中使用 scanf 写一封信

c - 有没有什么办法可以在小端电脑上以大端模式编译和运行程序?

c - 无需gdb的linux应用程序远程调试

c# - 用C#读取arduino发送到串口的信息

c# - 我应该使用 return/continue 语句而不是 if-else 吗?

c - 在函数中使用指针的指针的正确方法是什么?

c - Fscanf 读取 c 中 float 和字符的混合