sscanf函数是C语言中的一个格式化输入函数,用于从字符串中按指定格式提取数据。它的原型如下:

int sscanf(const char* str, const char* format, ...);

在这个函数中,”str”是输入的字符串,”format”是格式字符串,”…”表示可变参数,用于接收提取的数据。

举个例子,

const char* filename = "0001_123_456_789_987.jpg";int x, y, w, hsscanf(filename, "%*d_%d_%d_%d_%d.jpg", &x, &y, &w, &h);printf("x: %d\n", x)printf("y: %d\n", y)printf("w: %d\n", w)printf("h: %d\n", h)

在上述示例中,sscanf函数被用于解析文件名字符串。下面是对函数中参数的解释:

  • filename:要解析的字符串,即文件名
  • %*d_%d_%d_%d_%d.jpg:格式字符串,指定了要提取的数据的格式。具体解释如下:
    • %*d:%*表示跳过匹配的数据,这里表示跳过一个整数值(数字序号部分)
    • _:匹配下划线字符
    • %d:匹配一个整数值,并将其存储到对应的变量中
    • .jpg:匹配”.jpg”字符串
  • &x, &y, &w, &h:取址,指向整数变量的指针,用于存储提取的数据