给定两个字符串对象S,P(P的长度小于S),实现一判断函数find,检测S是否完全包含P(串P是S的子串),若包含则返回P第一个字符在串s中的起始地址,否则返回-1。
#include<iostream.h>
#include<string>
class str
string s,p;
public:
str(string& a,string& b)s=a;p=b;
....find(....);
;
请写出函数的过程(如果需要形式参数,请给出形参类型和数量,以及返回值类型)
参考答案:int str::find(){
int i=0,j=0;
char*m=p,*n=s;
while(i<=s.size-p.size)
{ while(*m++=*n++)
if(++j=p.size) return i;
i++;m=p;j=0;n=s[i];
}
return -1;
}