函数
<cstdio>

sscanf

int sscanf ( const char * s, const char * format, ...);
从字符串读取格式化数据
s 中读取数据,并根据参数 format 将它们存储到附加参数所给定的位置。这就像使用了 scanf,但它从 s 而不是标准输入 (stdin) 读取。

附加参数应该指向已分配的对象,其类型由 format 字符串中相应的格式说明符指定。

参数

s
C 字符串,函数将其作为源来处理以检索数据。
format
C 字符串,包含一个格式化字符串,其遵循与 scanf 中的 format 相同的规范(详见 scanf)。
... (附加参数)
根据 format 字符串,该函数可能需要一系列附加参数,每个参数都包含一个指向已分配存储空间的指针,其中提取的字符的解释将以适当的类型存储。
这些参数的数量至少应与格式说明符存储的值的数量相同。多余的参数会被函数忽略。

返回值

成功后,函数返回成功填充的参数列表中的项目数。在匹配失败的情况下,此计数可以与预期的项目数匹配,或者更少(甚至为零)。
如果在任何数据可以被成功解析之前发生输入失败,则返回 EOF

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* 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;
}

输出
Rudolph -> 12


另见