From be86ca68b6920d4290925f80368f687b91643624 Mon Sep 17 00:00:00 2001 From: ViolentAyang <76544389+ViolentAyang@users.noreply.github.com> Date: Fri, 1 Apr 2022 16:35:33 +0800 Subject: [PATCH] =?UTF-8?q?Create=20=E4=B8=B2=E7=9A=84=E6=9C=B4=E7=B4=A0?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=E5=8C=B9=E9=85=8D.c?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 串/串的朴素模式匹配.c | 56 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 串/串的朴素模式匹配.c diff --git a/串/串的朴素模式匹配.c b/串/串的朴素模式匹配.c new file mode 100644 index 0000000..b13ddba --- /dev/null +++ b/串/串的朴素模式匹配.c @@ -0,0 +1,56 @@ +#include +#include +#include +#define MAXLEN 255 + +typedef struct{ + char ch[MAXLEN]; + int length; +}SString; + +int Index(SString S,SString T){ + int k = 1,i = k,j = 1; + while(i<=S.length&&j<=T.length){ + if(S.ch[i]==T.ch[j]){ + ++i; + ++j; + }else{ + k++; + i = k; + j = 1; + } + } + if(j>T.length){ + return k; + }else{ + return 0; + } +} + +//字符串赋值操作 +void assign(SString *S){ + printf("请输入字符串:\n"); + char x; + int i = 1; + scanf("%c",&x); + while(x!='\n'){ + S->ch[i] = x; + i ++; + scanf("%c",&x); + } + S->length = i-1; +} +//打印字符串 +void printString(SString S){ + for(int i=1;i<=S.length;i++){ + printf("%c",S.ch[i]); + } + printf("\n"); +} +int main(){ + SString S,T; + assign(&S); + assign(&T); + printf("匹配:%d",Index(S,T)); + return 0; +}