else
if(k==0) {j++;
next[j]=0; } else
k=next[k]; } }
int IndexKMP(SString S,SString T,int pos,int next[]) { int i,j,k;
i= pos;j =0;k=-1;
while (i<S.length&&j<T.length) { if (S.ch[i]==T.ch[j]) {i++;j++;} else
if(j==0){i++;} else
j=next[j]; }
if (j>=T.length) k=i-T.length; return k; }
//KMP算法
//---------------文本文件单词的检索与计数------------------ int match(char a[],int n,char c) {int i;
for(i=0;i<n;i++)
if(a[i]==c) return 1; return 0; }
void CreatTextFile() {SString S;
char fname[10],yn; FILE *fp;
printf("输入要建立的文件名:"); scanf("%s",fname); fp=fopen(fname,"w");
yn='n';//输入结束标志初值 while(yn=='n'||yn=='N')
{printf("请输入一行文本:"); gets(S.ch);gets(S.ch); S.length=strlen(S.ch); fwrite(&S,S.length,1,fp);