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 ",s); 18 19 sscanf("123456","%d",&x); 20 printf("x = %d ",x); 21 22 sscanf("123456","%4d",&x);//最多取前4位 23 printf("x = %d ",x); 24 25 26 sscanf("123456aaa","%4s",s);//最多取前4位 27 printf("s = %s ",s); 28 29 sscanf("123456abc","%[^b]",s);//遇到b则截止 30 printf("s = %s ",s); 31 32 sscanf("123456abc abc","%[^ ]",s);//遇到空格则截止 33 printf("s = %s ",s); 34 35 sscanf("123456abcabcAabc","%[^A-Z]",s);//遇到大写字母则截止 36 printf("s = %s ",s); 37 38 sscanf("word1 word2 word3 word4", "%*s%s",s);//过滤掉第一个匹配到的%s,保留第二个 39 printf("s = %s ",s); 40 41 sscanf("123456abc abc","%[1-9a-z]",s);//只取1-9 a-z的字符 42 printf("s = %s ",s); 43 44 gets(ch); 45 sscanf(ch," %s = %s + %s",s1,s2,s3);//方便处理输入格式 46 printf("s1=%s s2=%s s3=%s ",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