简单的字符串查找小程序的请教
顺序存储字符串的查找,我写完后运行了,但结果不对,请大家指教啊,代码如下:#include"iostream.h"
#include"stdlib.h"
#include"stdio.h"
#define MAX 100
struct strings
{
char vec[MAX];
int len;
};
void print(strings r);
void print(strings *r);
int searchstrings(strings *r,strings *r1)
{
for(int k=0;k<r->len;k++)
{
int j=k,i=0;
while(r->vec[j]==r1->vec[i])
{
j=j+1;
i=i+1;
}
if(r1->vec[i]=='\0')
{
return k+1;
}
}
return -1;
}
void print(strings r)
{
for(int i=0;i<r.len;i++)
{
cout<<r.vec[i];
}
cout<<endl;
}
void print(strings *r)
{
for(int i=0;i<r->len;i++)
{
cout<<r->vec[i];
}
cout<<endl;
}
int main()
{
strings r1;
strings r2;
char *s1="abcdefgh";
char *s2="fgh";
r1.len=5;
for(int i=0;i<8;i++)
{
r1.vec[i]=s1[i];
}
/*r1.vec[5]='\0';*/
r2.len=3;
for(int j=0;j<3;j++)
{
r2.vec[j]=s2[j];
}
/*r2.vec[3]='\0';*/
cout<<searchstrings(&r1,&r2);
return 0;
}
运行的结果总是-1,不是预期的效果啊。