?? 習題1-串的模式匹配.c
字號:
#include "datastru.h"
#include <stdio.h>
int index(SEQSTRING s,SEQSTRING t)
{/*模式匹配*/
int i = 1, j = 1;
while(i <= s.len && j <= t.len)
if(s.ch[i] == t.ch[j]) {i++; j++;}
else {i = i - j + 2; j = 1;}
if(j > t.len) return i - t.len;
else return 0;
}
main() {
SEQSTRING s, t;
int i;
char ch;
printf("\n請輸入主串,回車鍵結束 :");
ch = getchar(); i = 1;
while(ch != '\n')
{s.ch[i] = ch; i++; /*主串從s.ch的下標1開始放起*/
ch = getchar();}
s.len = i - 1; /*主串長度放在s.len中*/
printf("\n請輸入子串,回車鍵結束 :");
ch = getchar(); i = 1;
while(ch != '\n')
{t.ch[i] = ch; i++; /*主串從t.ch的下標1開始放起*/
ch = getchar();}
t.len = i - 1; /*子串長度放在t.len中*/
i = index(s,t); /*匹配操作算法*/
if(i == 0) printf("\n子串不在主串中!\n\n");
else printf("\n子串在主串中! 從位置%d開始.\n\n",i);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -