sscanf的用法

sscanf也太好用了8我竟然一直都不知道qaq

 1 #include<cstdio>
 2 #include<cstdlib>
 3 #include<cstring>
 4 #include<iostream>
 5 using namespace std;
 6 
 7 const int N=110;
 8 char s[N],s1[N],s2[N],s3[N],ch[N];
 9 int x;
10 
11 int main()
12 {
13     //freopen("a.in","r",stdin);
14     
15     //转换类型
16     sscanf("123456aaa","%s",s);
17     printf("s = %s\n",s);
18     
19     sscanf("123456","%d",&x);
20     printf("x = %d\n",x);
21     
22     sscanf("123456","%4d",&x);//最多取前4位
23     printf("x = %d\n",x);
24     
25     
26     sscanf("123456aaa","%4s",s);//最多取前4位
27     printf("s = %s\n",s);
28     
29     sscanf("123456abc","%[^b]",s);//遇到b则截止
30     printf("s = %s\n",s);
31     
32     sscanf("123456abc abc","%[^ ]",s);//遇到空格则截止
33     printf("s = %s\n",s);
34     
35     sscanf("123456abcabcAabc","%[^A-Z]",s);//遇到大写字母则截止
36     printf("s = %s\n",s);
37     
38     sscanf("word1 word2 word3 word4", "%*s%s",s);//过滤掉第一个匹配到的%s,保留第二个
39     printf("s = %s\n",s);
40     
41     sscanf("123456abc abc","%[1-9a-z]",s);//只取1-9 a-z的字符
42     printf("s = %s\n",s);
43     
44     gets(ch);
45     sscanf(ch," %s = %s + %s",s1,s2,s3);//方便处理输入格式
46     printf("s1=%s s2=%s s3=%s\n",s1,s2,s3);
47     
48     
49     
50     return 0;
51 }

 

a.in

  word1 = word2 + word3 

 

输出

s = 123456aaa
x = 123456
x = 1234
s = 1234
s = 123456a
s = 123456abc
s = 123456abcabc
s = word2
s = 123456abc
s1=word1 s2=word2 s3=word3

 

posted @ 2018-10-18 12:41  拦路雨偏似雪花  阅读(261)  评论(0编辑  收藏  举报