在string1中查找是否出现string2?
#include<stdio.h>
int stringlen(char *s);
int stringcmp(char *s,char *t);
int stringend(char *s,char *t);
int stringin(char *s,char *t);
int stringlen(char *s){
int n=0;
while(*s++ != '\0'){
++n;
}
return(n);
}
int stringcmp(char *s,char *t){
for( ; *s == *t ; s++,t++){
if(*s == '\0') return 0;
}
return *s-*t;
}
int stringend(char *s,char *t){
int strlens,strlent;
strlens=stringlen(s);
strlent=stringlen(t);
s+=strlens-strlent;
if(stringcmp(s,t)){
return 0;
}
else return 1;
}
int stringin(char *s,char *t){
int strlens,strlent,flag=0;
char *p;
strlens=stringlen(s);
strlent=stringlen(t);
for(p=s;p<=(s+strlens-strlent);p++){
*(p+strlent)='\0';
if(stringcmp(p,t))
flag=0;
else{
flag=1;
break;
}
}
/*
p=s;
*(p+strlent)='\0';
if(stringcmp(p,t))
return 0;
else
return 1;
*/
return flag;
}
int main()
{
int result;
char *str1=(char* )malloc(sizeof(char)*128); /*dynamically alloc memory in heap*/
char *str2=(char* )malloc(sizeof(char)*64);
if(str1==NULL || str2==NULL){
puts("memory alloc fail\n");
exit(1);
}
printf("please input string1:");
gets(str1);
printf("please input string2:");
gets(str2);
result=stringin(str1,str2);
if(result)
printf("string2 is in string1.byebye\n");
else
printf("string2 is not in string1.byebye\n");
free(str1);
free(str2);
str1=NULL;
str2=NULL;
return(0);
}
能不能帮我看一下这个程序,使用stringend( )的时候可以检查string2是不是在string1的尾部,但是使用stingin( )的时候检查不出string2 是不是在string1 里面,请问如何修改stringin( )这个function
谢谢