#include<stdio.h>
#include<stdlib.h>
typedef struct string{
int len;
char *data;
}*String1,string1;
String1 init(){
String1 s=(String1)malloc(sizeof (string1));
if(s){
s->len=0;
s->data=NULL;
}
return s;
}
void Insert(String1 s,char *data){
if(s->data){
free(s->data);
}
int len=0;
char * temp=data;
while (*temp) {
len++;
temp++;
}
if(len==0){
s->data=0;
s->len=0;
}else {
temp=data;
s->len=len;
s->data=(char *)malloc(sizeof (char)*(len+1));
for(int i=0;i<len;i++)
{
s->data[i]=*temp;
temp++;
}
}
}
void forceMath(String1 p,String1 q)
{
int i=0,j=0;
while (i<p->len&&j<q->len) {
if(p->data[i]==q->data[j])
{
i++;
j++;
}else {
i=i-j+1;
j=0;
}
}
if(j==q->len)
{
printf("success\n");
}else {
printf("fail");
}
}
void pri(String1 s){
for(int i=0;i<s->len;i++)
printf(i==0?"%c":"->%c",s->data[i]);
}
int main()
{
String1 s=init();
String1 s1=init();
Insert(s,"Hello");
Insert(s1,"llo");
pri(s);
printf("\n");
pri(s1);
printf("\n");
forceMath(s,s1);
return 0;
}
12-04
1030
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
06-11
4022
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-24
1197
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)