sscanfトラップ

3206 ワード

万悪のC++はいつも朕を谋害したい!C++は罠だらけ!
#include<cstdio>
#include<iostream>
using namespace std;
#include<cstring>

char c[1007];
char buf[10006];
int main(){
    char *a=new char [10005];
    strcpy(a,"1234ABCDabcd*123&^%#1234");
    char *b=new char[504];
    sscanf(a,"%s",b);
    cout<<b<<endl;
    sscanf(a,"%9s",b);//    9     
    cout<<b<<endl;
    sscanf("trtr322&&^123456abcdedfBCDEF", "%[1-9a-z]", buf);
//      ,sscanf     1-9     ,           ,  sscanf    ,          
//     C++    ,                ,    ..... 
    cout<<buf<<endl;
    memset(c,0,sizeof(c));
    sscanf("1234abcdACBD1221sc","%[a-z]",c);//      ,       ,         ,     
    cout<<c<<endl;
    sscanf(a,"%[^A-Z]",c);
    cout<<c<<endl;
    sscanf("ACBDHJKAS JA*96278","%*s%s",c);//*          
    cout<<c<<endl; 
    char *t=new char[1007]; 
    sscanf("ACBD","%*s%s",t);//*          
    cout<<t<<endl; 

    return 0;
}