题目:
自实现myFind()函数,
在某个字符串str中查找子字符串str_key的位置,,如果找到,返回子字符串所出现的第一个位置的下标,如果没找到,返回-1。
例如
abcdefgabcdefg (str)def (str_key) 3
qwe -1
#include <iostream>
#include <cstring>
using namespace std;
//Find
int Find1(string str,string key_str)
{
if (str.length()<key_str.length())
{
return -1;
}
for (int i = 0; i < str.length(); i++)
{
// 当找到字符与要查找的字符第一个字符相同
if (str[i]==key_str[0])
{
//保存当前的位置
int i_tmp=i;
int j=0;
// 依次往后对比
while (str[i_tmp] ==key_str[j]&& i_tmp <=str.length() &&j<=key_str.length())
{
i_tmp++;
j++;
}
//待对比长度
if (j>=key_str.length())
{
//返回找到的位置
return i;
}
}
}
}
int main()
{
//自实现string.find()功能,在某个字符串str中查找子字符串str_key的位置
//如果找到,返回字符串所出现的第一个位置的下标,如果没找到,返回-1;
int pos=Find1("abcdgeg","dge");
cout<<"pos="<<pos<<endl;
return 0;
}