给定两个字符串对象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;
}