提取指定个数的字符或数值 %3s %3d
获取 连续的3个字符 和 连续的3个数字
char buf[128] = "hel1234world";
char buf2[128]="";
int a =0;
sscanf(buf, "%3s%3d",buf2, &a); // hel 123
printf("%s %d\n",buf2, a);
%s 跳过提取到的字符串 %d 跳过提取的数值
char buf[128] = "helloworld";
char buf2[128] = "";
sscanf(buf, "%*c%*3s%s", buf2); // oworld
puts(buf2);
char buf3[128] = "123456";
int a=0;
sscanf(buf3, "%*2s%2d%*s", &a); // 34
printf("%d\n",a);
%[a-z] 表示匹配 a 到 z 中任意字符(尽可能多的匹配)
sscanf("abcABC","%[a-z]") // 提取的结果是"abc"
%[aBc] 匹配 a、B、c 中一员,贪婪性
sscanf("abcABC","%[aBc]") // 提取的结果是"a"
%[^aFc] 匹配非 a F c 的任意字符,贪婪性
sscanf("abcABC","%[^A]") // 提取的结果是"abc"
sscanf("[简单爱:啦啦啦]","%[^]]") // 提取的结果是"[简单爱:啦啦啦"
sscanf("[简单爱:啦啦啦]","%[^:]") // 提取的结果是"[简单爱"
sscanf("[简单爱:啦啦啦]","%*c%[^:]") // 提取的结果是"简单爱"、
sscanf("[简单爱:啦啦啦]","%*[^:]%*c%[^]]") // 提取的结果是"啦啦啦"
sscanf("[简单爱:啦啦啦]","%*[^:]:%[^]]") // 提取的结果是"啦啦啦"