C++官网参考链接:https://cplusplus.com/reference/cstdio/sscanf/
函数
<cstdio>
sscanf
int sscanf ( const char * s, const char * format, ...);
从字符串中读取格式化的数据
从s中读取数据,并根据形参format将数据存储到附加实参所给出的位置,就像使用了scanf一样,但从s中读取数据而不是标准输入(stdin)。
附加实参应该指向format字符串中相应的格式说明符指定的已分配类型的对象。
形参
s
C字符串,该函数将其处理为获取数据的源。
format
C字符串,它包含一个格式字符串,遵循与scanf中的format相同的规范(详细信息请参阅scanf)。
...(附加实参)
根据format字符串的不同,函数可能期望一个附加实参序列,每个实参包含一个指向已分配存储空间的指针,在该存储空间中,用适当的类型存储对提取字符的解释。
这些实参的数量至少应该与格式说明符存储的值的数量相同。函数将忽略额外的实参。
返回值
成功时,函数返回参数列表中成功填充的项数。在匹配失败的情况下,该计数可以匹配预期的项目数量,也可以更少(甚至为0)。
如果在成功解释任何数据之前出现输入失败,则返回EOF。
用例
/* sscanf example */
#include <stdio.h>
int main ()
{
char sentence []="Rudolph is 12 years old";
char str [20];
int i;
sscanf (sentence,"%s %*s %d",str,&i);
printf ("%s -> %d\n",str,i);
return 0;
}
输出: