#include<stdio.h>
#define N 100
bool judge(char *p){
while(p){
if(*p=='a'){//嵌套匹配
p++;
if(*p=='b'){
p++;
if(*p=='c'){
p++;
while(*p!='d'){
p++;//跳過任意箇中間字符
}
if(p==NULL)return false;//如果到結尾還沒有找到d
else{
if(*p=='d'){
p++;
if(p!=NULL){//?任意字符不爲空,繼續往下找
p++;
if(*p=='e')
return true;
}
}
}
}
}
}
return false;
}
return false;
}
int main(){
char s[N];
FILE *fp;
fp=fopen("3.in","r");
bool flag=false;
fgets(s,99,fp);
int i=0;
while(s[i]!='\0'){
flag=judge(s+i);
if(flag){printf("找到該序列");break;}
else{
i++;
}
}
if(flag==false)printf("未找到序列");
return 0;
}
USTC機試—字符串處理之模式匹配問題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.