#include <stdio.h>
int main()
{
int a, b, c, d, e;
char out1[100] = { 0 };
char out2[100] = { 0 };
char out3[100] = { 0 };
char out4[] = "hello world_this is my work!";
sscanf(out4, "%[a-z]%s%*s%[^!]", out1, out2, out3);
printf("*%s*\n", out1);
printf("*%s*\n", out2);
printf("*%s*\n", out3);
/*输出为
*hello* %[a-z]匹配a-z,遇到hello world之间的空格停止,所以out1为hello
*world_this* %s匹配至非空格为止包括_,所以out2为world_this
* my work* %*s代表匹配并匹配到is,但不保存到后面变量;%[^!]表示不匹配叹号,匹配了is到叹号之前的字符,包括空格
*/
sscanf(out4, "%[a-z' ']%s%*s%[^!]", out1, out2, out3);
printf("*%s*\n", out1);
printf("*%s*\n", out2);
printf("*%s*\n", out3);
/*输出为
*hello world* %[a-z' ']匹配a-z及空格,遇到_下划线停止,所以out1为hello world,
*_this* %s,匹配非空格,out2为_this
* my work*
*/
//%4s 表示最多取出4个字符
}