字符串处理算法(一)检测输入字符串中是否包含连续的或者离散的test

来源:互联网 发布:一般淘宝客服休息时间 编辑:程序博客网 时间:2024/05/23 14:22

根据转载博文

http://blog.csdn.net/wujunokay/article/details/11868273里的要求:

请设计函数int getTest(charinput[]) ,检测输入字符串中是否包含连续的或者离散的test,test只出现一次。

题目概述:请设计函数,检测输入字符串中是否包含连续的或者离散的test,test只出现一次。

函数原型:int getTest(char input[])

函数说明:input为输入的字符串,如果出现连续的test则返回1,如果出现离散的test则返回2,如果没有出现test或者出现的次数和顺序不正确,则返回0。

测试样例:

char in[][30]=
    {
       "avvvdtestdkd",
       "atvvdedskt",
       "tshihitesst",
       "testabctesst",
       "testabcst",
       "tshihitesst"
     };
in[0]= avvvdtestdkd      getTest(in[0])= 1
in[1]= atvvdedskt         getTest(in[1])= 2
in[2]= tshihitesst        getTest(in[2])= 0
in[3]= testabctesst       getTest(in[3])= 0
in[4]= testabcst         getTest(in[4])= 0
in[5]= tshihitesst        getTest(in[5])= 0



代码实现如下:

int getTest(char input[]){int nT1count=0;//T1出现的个数int nEcount=0;//E出现的个数int nScount=0;//S出现的个数int nT2count=0;//T2出现的个数int nT1Pos=0;//T1出现的位置int nEPos=0;//E出现的位置int nSPos=0;//S出现的位置int nT2Pos=0;//T2出现的位置int nLen=strlen(input);for (int i=0; i<nLen; i++){if (input[i]=='t'){//第1个t出现if (nT1count==0){nT1count=1;nT1Pos=i;}else if (nT1count==1){if (nScount==1){if (nT2count == 0){nT2count =1;nT2Pos=i;}else{ return 0;//超过1次}}else{return 0;//顺序不对}}}else if (input[i]=='e'){if (nEcount == 0){if (nT1count==1){nEcount = 1;nEPos = i;}else {return 0;//顺序不对}}else{return 0;//超过1次}}else if (input[i]=='s'){if (nScount == 0){if (nEcount==1){nScount = 1;nSPos = i;}else {return 0;//顺序不对}}else{return 0;//超过1次}}}if ((nT1Pos+1==nEPos) &&(nEPos+1==nSPos) && (nSPos+1==nT2Pos)){return 1;}return 2;}

int main(){    int i;char in[][30]=    {"avvvdtestdkd","atvvdedskt","tshihitesst","testabctesst","testabcst","tshihitesst"};for(i=0;i<6;i++){cout<<"in["<<i<<"]= "<<in[i]<<"\t\tgetTest"<<"(in["<<i<<"])= "<<getTest(in[i])<<endl;}return 0;}


测试结果:

in[0]= avvvdtestdkd             getTest(in[0])= 1
in[1]= atvvdedskt                 getTest(in[1])= 2
in[2]= tshihitesst                  getTest(in[2])= 0
in[3]= testabctesst               getTest(in[3])= 0
in[4]= testabcst                    getTest(in[4])= 0
in[5]= tshihitesst                  getTest(in[5])= 0


转载请注明原创链接:http://blog.csdn.net/wujunokay/article/details/11912265



原创粉丝点击