数据结构作业串通配符匹配问题

采用顺序结构存储串,编写一个一个实现串通配符匹配的函数,其中通配符只有'?',他可以和任意字符匹配,for example:原串:where are you re? 匹配串?re
则返回3个匹配。码子如下:

#include<iostream> #include<cstring> using namespace std; int main() { int k,i,j,lena,lenb; char str[100],substr[100]; gets(str); getchar(); gets(substr); lena=strlen(str); lenb=strlen(substr); int num=0; for(i=0;i<lena;i++) { for(j=i,k=0;k<lenb && (str[j]==substr[k] || substr[k]=='?');k++) if(substr[k]!='?') j++; if(k==lenb) num++; } if(num!=0) printf("共找到 %d个匹配/n",num); else printf("%c 没找到/n",'$'-'#'); return false; }

思路也比较清晰,类似朴素的求字串位置。。。各位想必能一目了然。

你可能感兴趣的:(数据结构,c,存储,作业)