请C++高手指教一道题目(也不是很难)

来源:百度知道 编辑:UC知道 时间:2024/05/12 11:13:37
请编写一个函数int find(char s[],char
t[]),该函数在字符串s中查找字符串t,如果找到,则返回字符串t在字符串s中的位置(整数值);否则返回-1.注意:用数组方式及两重循环来实现该函数.
注意:部分源文件程序已存在文件PROC2,CPP中.
请勿修改主函数main和其他函数中的任何内容,仅在函数find的花括号中填写若干语句.
文件PROC2.CPP的内容如下:
#include
int find(char s[],char t[]);
const int MAXLINE =256;
int main()
{ char source[MAXLINE],rarget[MAXLINE];

;
 cout <<"Please input a string for searching: ";
 cin.getline(source,MAXLINE);
 cout<<"Please input a string you want to find: ";
 cin.getline(target,MAXLINE);
 int intpos = find(source,target);
 if(intpos>=0
 cout<<"Finding it.The tar

int find(char s[],char t[])
{
int lens;
int lent;
int i,j;
lens=strlen(s);
lent=strlen(t);
for (i=0; i<=(s-t); i++)
{
if (s[i]!=t[0]) continue; //第一个字母不一致
for (j=0; j<lent; j++) //找到一个一致的头字母,依次比较剩下的字母是否全部一致
if (s[i+j]!=t[j]) break;
if (j==lent) return i;
}
return -1;
}

老实说,我觉得find函数参数用字符指针较好