#include #include #include using namespace std; int main() { ifstream in; ofstream out; string from; string to; string bcc; string cc; // string attachment; string subject; string body; string trash; string end="----"; string::iterator it; in.open("email.in"); if(in==NULL) { cout<<"Cannot open file!"<>trash; char chfrom; in.get(chfrom); if(chfrom=='\n'|| chfrom==' ') { cout<<"1"<>from; } it=from.begin(); while(it!=from.end()) { if((*it)>'A' || (*it)<'Z') { cout<<"3"; out<<"3"; return 0; } it++; } if(from[2]=='\n') { cout<<"1"<=(from.rfind('.')-1)) { cout<<"3"<>trash; int second=0, second1=0; char chto; in.get(chto); if(chto=='\n') { second=1; } else { in.get(chto); if(chto=='\n' || chto==' ') { second1=1; } else in>>to; } it=to.begin(); while(it!=to.end()) { if((*it)>'A' || (*it)<'Z') { cout<<"3"; out<<"3"; return 0; } it++; } p=to.size(); if(to[2]=='@' || (to[p]!=',') || (to[p]!='.') || (to[p]!='!') || (to[p]!='?') || to[2]!='.' || to[2]!='!' || to[2]!='?') { cout<<"3"<=(to.rfind('.')-1)) { cout<<"3"<>trash; int third=0, third1=0; char chbcc; in.get(chbcc); if(chbcc=='\n') { third=1; } else { in.get(chbcc); if(chbcc=='\n' || chbcc==' ') { third1=1; } else in>>bcc; } it=bcc.begin(); while(it!=bcc.end()) { if((*it)>'A' || (*it)<'Z') { cout<<"3"; out<<"3"; return 0; } it++; } p=bcc.size(); if(bcc[2]=='@' || (bcc[p]!=',') || (bcc[p]!='.') || (bcc[p]!='!') || (bcc[p]!='?') || bcc[2]!='.' || bcc[2]!='!' || bcc[2]!='?') { cout<<"3"<=(bcc.rfind('.')-1)) { cout<<"3"<>trash>>cc; int four=0, four1=0;; char chcc; in.get(chcc); if(chcc=='\n') { four=1; } else { in.get(chcc); if(chcc=='\n' || chcc==' ') { four1=1; } else in>>cc; } if(second==1 && second1==1 && third==1 && third1==1 && four==1 && four1==1) { out<<"2"<'A' || (*it)<'Z') { cout<<"3"; out<<"3"; return 0; } it++; } if(bcc[2]=='\n' || cc[2]=='\n' || to[2]=='\n') { cout<<"3"<=(bcc.rfind('.')-1)) { cout<<"3"<>trash; char ch; do { in>>ch; }while(ch!=' '); trash.erase(); in>>trash>>subject; it=subject.begin(); int flag=0; while(it!=subject.end()) { if((*it)>' ') flag=1; it++; } if(flag==0) { cout<<"100"; out<<"100"; return 0; } trash.erase(); in>>trash; do { in>>body; it=body.begin(); flag=0; while(it!=body.end()) { if((*it)>' ') flag=1; it++; } if(flag==0) { cout<<"101"; out<<"101"; return 0; } it=body.begin(); while(it!=body.end()) { if((*it)==' ' && *(it++)==' ') { cout<<"101"; out<<"101"; return 0; } it++; } } while(body!=end); return 0; }