使用fscanf()忽略逗号和点

时间:2011-12-17 22:51:08

标签: arguments ignore scanf optional

我正在尝试使用fscanf()来读取没有逗号和点的字符串。

示例输入:

“女贞路四号杜斯利先生和夫人,很自豪地说他们非常正常,非常感谢你。”

我想每次都读“先生”,“太太”和“杜斯利”,例如

我尝试了几种使用可选参数执行此操作的方法,但我失败了。如何使用fscanf()忽略逗号和点?

1 个答案:

答案 0 :(得分:1)

您可以使用the regex feature of sscanf执行此操作。

#include <stdio.h>


int main()
{
  char *str = "Mr. Fiddle Tim went to the mall. Mr. Kurdt was there. Mrs. Love was there also. "
    "They said hi and ate ice cream together." ;

  char res[800] = { 0 };
  sscanf( str, "%800[^.,]", res ) ;
  puts( str ) ;
}

要继续,您需要使用sscanf(或fscanf)的返回值来确定匹配的字符数。我把它留给你。