取值
1.指定长度
#include<stdio.h>
#include<string.h>
int main()
{
char str[100];
sscanf("12adsf345","%4s",str);
printf("%s\n",str);
return 0;
}
输出:
12ad
2.连续长度,不读入空格
#include<stdio.h>
#include<string.h>
int main()
{
char str1[] = "name wang li";
char str2[100], str3[100];
sscanf(str1,"%s%s",str2,str3);
printf("%s %s\n",str2,str3);
return 0;
}
输出:
name wang
3. 格式转换,字符串转整型
#include<stdio.h>
#include<string.h>
int main()
{
int year, month, day, hour, minute, second;
sscanf("2022year12mon13day 16:55:66","%dyear%dmon%dday %d:%d:%d",&year, &month, &day, &hour, &minute, &second);
printf("%d年%d月%d日 %d时%d分%d秒\n", year, month, day, hour, minute, second);
return 0;
}
输出:
2022年12月13日 16时55分66秒
停止符[^ ]与仅取符[ ]
1. 遇到指定字符停止
#include<stdio.h>
#include<string.h>
int main()
{
char str[100];
sscanf("adsfaf8572493687fhdsajfhk","%[^7]",str);
printf("%s\n",str);
return 0;
}
输出:
adsfaf85
2. 读取[ ]中指定的连续的字符串,可以指定范围1-9或a-z或A-Z
#include<stdio.h>
#include<string.h>
int main()
{
char str[100], str1[100];
sscanf("1234abc123674","%[4a132]bc%[1-6]",str, str1);
printf("str=%s\n",str);
printf("str=%s\n",str1);
return 0;
}
输出:
str=1234a
str=1236