C 库函数 int sscanf(const char *str, const char *format, ...) 从字符串读取格式化输入。
下面介绍几种常见用法:
#include<bits/stdc++.h>
using namespace std;
int main(void)
{
int k; char buf[150];
//取指定长度的字符串
sscanf("123456789", "%5s", buf);
printf("buf = %s\n\n", buf);// 输出 buf = 12345
//格式化时间
int year, month, day, h, m, s;
sscanf("2013/02/13 14:55:34","%d/%d/%d %d:%d:%d",&year,&month,&day,&h,&m,&s);
printf("time = %d-%02d-%02d %02d:%02d:%02d\n\n",year,month,day,h,m,s);
//取到指定字符为止的字符串
sscanf("123.456", "%[^.]", buf);
printf("buf = %s\n\n", buf);// 输出 buf = 123
//跳过指定字符集
sscanf("AbAs@df@sdf456", "%*[A-Za-z@]%d", &k);
printf("k = %d\n\n", k); //输出 k = 456
//取到指定字符集为止的字符串
sscanf("123abcABC", "%[^A-Z]", buf);
printf("buf = %s\n\n", buf); //输出 buf = 123abc
return 0;
}