TXT

code

By Beth Kelley,2014-09-30 10:54
9 views 0
code

#include <iostream>

    using namespace std;

    const int SIZE=20;

    int checklength(char ch[]); int checkword(char ch[]); int judge(char ch[]);

    void check2(char ch[],char a,char b);

    void check3(char ch[],char a,char b,char c);

    void change(char ch[]); int choose();

int choose()

    {char choice;

do

    {cin>> choice;

    cout<<"输入错误,请输入yn"<<endl;} while(choice!='y'&&choice!='n'); if (choice=='y') return 1; else return 0;

    }

    int checklength(char ch[]) {int length;

    length=strlen(ch);

    if(length>SIZE){return 0;} else {return 1;}

    }

    int checkword(char ch[]) { bool flag=1;

     for (int i=0;i<strlen(ch);i++)

     {

     if ((ch[i]>='a'&&ch[i]<='z')

     ||(ch[i]>='A'&&ch[i]<='Z')

     ||ch[i]==','

     ||ch[i]=='.'

     ||ch[i]=='@'

     ||ch[i]=='#'

     ||ch[i]=='$'

     ||ch[i]==' '

     ||(ch[i]>='0'&&ch[i]<='9')){}

     else flag=0;

     }

     if (flag==0) return 0;

     else return 1;

    }

    int judge(char ch[])

    {if(checkword(ch)+checklength(ch)==2) return 1;

    else return 0;

    }

    void change(char ch[])

    {for (int i=0;i<SIZE;i++)

     {

     if (ch[i]>='A'&&ch[i]<='Z'){ch[i]=ch[i]-'A'+'a';}

     }

    }

    void check2(char ch[],char a,char b)

    {

     char *p1=ch,*p2=NULL,*p3=NULL;

     bool flag=1;

     while(*p1!=a&&p1<=ch+SIZE){p1++;}

     if(*p1==a)

     {

     p2=p1;

     while(*p2!=b&&p2<=ch+SIZE){p2++;}

     }

     if(*p1==a&&*p2==b)

     {

     if(p2==p1+1)

     {

     *p1='~';

     *p2='~';

     }

     else{

     for(int i=1;i<p2-p1;i++)

     {

     if(*(p1+i)=='@'||*(p1+i)=='#'||*(p1+i)=='$'||*(p1+i)==' '){}

     else flag=0;

     }

     if (flag==1)

     {

     for(i=1;i<=p2-p1;i++)

     {

     *p1='~';

     *p2='~';

     p3=p1+i;

     if(*p3!=' ')

     {

     *p3='~';

     }

     }

     }

     }

     }

    }

void check3(char ch[],char a,char b,char c)

    {

     char *p1=ch,*p2=NULL,*p3=NULL,*p4=NULL;

     bool flag=1;

     while(*p1!=a&&p1<=ch+SIZE){p1++;}

     if(*p1==a)

     {

     p2=p1;

     while(*p2!=b&&p2<=ch+SIZE){p2++;}

     }

     if(*p1==a&&*p2==b)

     {

     p3=p2;

     while(*p3!=c&&p3<=ch+SIZE){p3++;}

     }

     if(*p1==a&&*p2==b&&*p3==c)

     {

     if(p2==p1+1&&p3==p2+1)

     {

     *p1='~';

     *p2='~';

     *p3='~';

     }

     else{

     for(int i=1;i<p2-p1;i++)

     {

     if(*(p1+i)=='@'||*(p1+i)=='#'||*(p1+i)=='$'||*(p1+i)==' '){}

     else flag=0;

     }

     for(i=1;i<p3-p2;i++)

     {

     if(*(p2+i)=='@'||*(p2+i)=='#'||*(p2+i)=='$'||*(p2+i)==' '){}

     else flag=0;

     }

     if (flag==1)

     {

     *p1='~';

     *p2='~';

     *p3='~';

     for(i=1;i<=p2-p1;i++)

     {

     p4=p1+i;

     if(*p4!=' ')

     {

     *p4='~';

     }

     }

     for(i=1;i<=p3-p2;i++)

     {

     p4=p2+i;

     if(*p4!=' ')

     {

     *p4='~';

     }

     }

     }

     }

     }

    }

int main()

    {

     char input[SIZE+1];

     cout<<"现有敏感词汇为l4,fd,d26,是否添加?(y/n)"<<endl;

     cout << "输入字符串;不多于20个字符;:" << endl;

     cin.getline(input,80);

     while(judge(input)==0){

     cout <<"输入不符合要求"<<endl;

     cin.getline(input,80);}

     change(input);

     check2(input,'l','4');

     check2(input,'f','d');

     check3(input,'d','2','6');

     for(int i=0;i<strlen(input);i++)

     {if(input[i]!='~')cout<<input[i];}

}

Report this document

For any questions or suggestions please email
cust-service@docsford.com