字符串匹配
Posted woshare
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串匹配相关的知识,希望对你有一定的参考价值。
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 5 int Index_BF(const char *dst,const char *src,int pos) 6 { 7 int i=pos,j=0; 8 while(dst[i+j]!=‘\0‘&&src[j]!=‘\0‘) 9 { 10 if(dst[i+j]==src[j]) 11 { 12 13 j++; 14 } 15 else 16 { 17 i++; 18 j=0; 19 } 20 21 } 22 if(src[j]==‘\0‘) 23 return i; 24 else 25 return -1; 26 27 } 28 29 char *func() 30 { 31 const char *dst="aaacaaa"; 32 const char *src="aca"; 33 const char *src2="a"; 34 char *str=""; 35 int src_len=strlen(src); 36 int left=0,right=0; 37 int index_left,index_right; 38 int index=Index_BF(dst,src,0); 39 if(index!=-1) 40 { 41 index_left=Index_BF(dst,src2,0); 42 index_right=Index_BF(dst,src2,index+src_len); 43 if(index_left!=-1&&index_left<index) 44 left=1; 45 if(index_right!=-1&&index_right>index+src_len-1) 46 right=1; 47 48 printf("index %d index_left %d index_right %d\n",index,index_left,index_right); 49 } 50 else 51 str="invalid"; 52 if(left==1&&right==0) 53 str="backward"; 54 else if(left==0&&right==1) 55 str="forward"; 56 else if(left==1&&right==1) 57 str="both"; 58 else 59 str="invalid"; 60 return str; 61 62 } 63 void main() 64 { 65 char *str=func(); 66 printf("func\n"); 67 printf("%s\n",str); 68 }
以上是关于字符串匹配的主要内容,如果未能解决你的问题,请参考以下文章