📄 jay6.c
字号:
#define NULL 0
#include "stdio.h"
#include "stdlib.h"
typedef int datatype;
typedef struct linknode
{ datatype data;
struct linknode *next;
} linkstring;
linkstring *S,*T,*head3;
linkstring *CREAT1()
{ char ch;
linkstring *head,*s,*r;
head=NULL;
r=NULL;
printf("\n链串1:\n");
scanf("%c",&ch);
while(ch!='$')
{ s=malloc(sizeof(linkstring));
s->data=ch;
if(head==NULL)
head=s;
else
r->next=s;
r=s;
printf("%c\t",s->data);
scanf("%c",&ch);
}
if(r!=NULL)
r->next=NULL;
return (head);
}
linkstring *CREAT2()
{ char x;
linkstring *head,*s,*r;
head=NULL;
r=NULL;
printf("\n链串2:\n");
scanf("%c",&x);
while(x!='$')
{ s=malloc(sizeof(linkstring));
s->data=x;
if(head==NULL)
head=s;
else
r->next=s;
r=s;
printf("%c\t",s->data);
scanf("%c",&x);
}
if(r!=NULL)
r->next=NULL;
return (head);
}
linkstring *INDEXL(M,N)
linkstring *M,*N;
{ linkstring *first,*p,*q;
first=M;
p=first;
q=N;
while(p!=NULL && q!=NULL)
if(p->data==q->data)
{ p=p->next;
q=q->next;
}
else
{ first=first->next;
p=first;
q=N;
}
if(q==NULL)
return(first);
else
return(NULL);
}
main()
{ char ch;
do
{ S=CREAT1();
getchar();
T=CREAT2();
printf("\n是否进行模式匹配?\n");
getchar(); ch=getchar();
if(ch=='y')
{ head3=INDEXL(S,T);
if(head3!=NULL)
{ printf("匹配成功,并返回子串第一个元素!\n");
printf("%c\n",head3->data);
}
else
printf("匹配失败!\n");
}
else
exit(0);
printf("是否继续?\n");
getchar(); ch=getchar();
} while(ch=='y');
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -