功能
sscanf函数是C语言中的一个输入/输出函数,它的作用是从一个字符串中提取字符串,浮点数,整数等值,并将其保存到指定的变量中。一句话总结就是从字符串读取格式化输入。
标准库
<>
声明(格式)
int sscanf(const char *str, const char *format, ...)
大白话参数说明
str
这是 C 字符串,是函数检索数据的源。可以放置一个字符型数组的地址,但不能放string类字符串。
format
这是 C 字符串,包含了以下各项中的一个或多个:空格字符、非空格字符 和 format 说明符。
…
这个函数接受一系列的指针作为附加参数,每一个指针都指向一个对象,对象类型由 format 字符串中相应的 % 标签指定,参数与 % 标签的顺序对应。
大白话格式说明
sscanf(字符型数组首地址,输入格式,具体输入内容)
sscanf(字符型数组首地址,输入格式,具体输入内容)你其实可以看作scanf()函数里的 scanf(输入格式,具体输入内容),scanf里怎么写你在sscanf里就怎么写,你要转化的字符串就是你要输入的内容。
返回值
如果成功,该函数返回成功匹配和赋值的个数。
如果到达文件末尾或发生读错误,则返回 EOF。
使用示范
sscanf()函数常与strcpy()函数和c_str()函数搭配使用。
strcpy(a,b),将字符串b复制到字符串a后面;s.c_str():把string 对象s转换成c中的字符型数组样式
这两个函数都是string类的,用的时候需要加头文件#include<>.
示范一
int n,amp;
char str[10] = {"11035 210"};
n = sscanf(str,"%d",&);
示范二
#include <>
#include <>
#include <>
int main()
{
int day, year;
char weekday[20], month[20], dtm[100];
strcpy( dtm, "Saturday March 25 1989" );
sscanf( dtm, "%s %s %d %d", weekday, month, &day, &year );
printf("%s %d, %d = %s\n", month, day, year, weekday );
return(0);
}
示范三
int get(string s)
{
int hour, minute, second;
/*
char dtm[N];
//strcpy(a,b),将b复制到a后面;
//s.c_str():把string 对象s转换成c中的字符型数组样式
strcpy(dtm,s.c_str());
sscanf(dtm, "%d:%d:%d", &hour, &minute, &second);
可转化为下面这一行
*/
sscanf(s.c_str(), "%d:%d:%d", &hour, &minute, &second);
return hour * 3600 + minute * 60 + second;
}
该段代码来自L2-042 老板的作息表 (25分)
参考
1.c语言的sscanf函数的用法讲解
2.C 库函数 – sscanf() | ()
其他
sprintf函数介绍和用法详解,我感觉它和sscanf很类似。