sscanf函数用于从字符串中读取格式化输入。它的原型如下:
int sscanf(const char *str, const char *format, …);
其中,str是要读取的字符串,format是指定输入格式的字符串,…是可变参数,表示要读取的数据的地址。
sscanf函数根据format参数的格式,解析str字符串中的内容,并将解析出的数据根据format中的指定方式存储到相应的地址中。它的工作方式与scanf函数类似,但是sscanf函数从字符串中读取输入,而scanf函数从标准输入流中读取输入。
例如,下面的示例演示了如何使用sscanf函数从字符串中读取整数和浮点数:
#include <stdio.h>
int main() {
char str[] = "42 3.14";
int num;
float f;
sscanf(str, "%d %f", &num, &f);
printf("num = %d\n", num);
printf("f = %f\n", f);
return 0;
}
输出结果为:
num = 42
f = 3.140000
在上面的例子中,sscanf函数从字符串str中按照"%d %f"的格式解析数据,并将整数存储到num变量中,将浮点数存储到f变量中。
需要注意的是,sscanf函数返回成功匹配和赋值的参数个数,如果返回值小于format字符串中的格式指示符个数,表示解析失败。另外,如果解析的数据类型和format中的格式指示符不匹配,可能会导致解析失败或者得到错误的结果。因此,在使用sscanf函数时,需要确保格式指示符和要读取的数据类型匹配。