int sscanf(

const char *buffer,

const char *format [,argument ] …

);
最简单的举例:切割时间

char sztime1[16] = “”, sztime2[16] = “”;
sscanf(“2006:03:18 - 2006:04:18”, “%s - %s”, sztime1, sztime2);

可是如果时间是”2006:03:18-2006:04:18”,即没有空格时,%s的定义就没法用了。这时候可以使用%[..]来定义,如下

sscanf(“2006:03:18-2006:04:18”, “%[0-9,:]-%[0-9,:]”, sztime1, sztime2);

%[]的用法,类似正则表达式,可以采用[a-z]这样的匹配;可以采用[^a-z]这样的排除匹配;还可以采用*[a-z]这样的匹配过滤。举例如下:

const char sourceStr[] = “hello, world”;

char buf[10] = {0};

sscanf(sourceStr, “%*s%s”, buf);

执行结果就是过滤了hello,打印出world~~