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:取址,指向整数变量的指针,用于存储提取的数据