#include<iostream>
#include<string>
using namespace std;
int find(char[], char[]);
int main()
{
char a[] = "0abcd1abcd2";
char b[] = "abcd";
cout << find(a,b);
return 0;
}
int find(char data[], char text[])
{
// 获取长度
int datal = strlen(data);
int textl = strlen(text);
if (datal < textl)
{
/*
如果要搜索的文本比源文本还长,就返回-1。
比如: char data[] = "abc"; char text[] = "abcd";
那么data里肯定不包含text。 */
return -1;
}
//text与data长度一样
else if (datal == textl)
{
//text与data是否相同
for (int i = 0; i <= datal; i++)
{
if (!(data[i] == text[i]))
{
return -1;
}
}
return 0;
}
else
{
/*
逐段检查
比如:
data:
[][][][][][]
↓↓↓↓
str: [][][][] 取text长度
text:
[][][][]
对比text与str
*/
for (int i = 0; i <= datal - textl; i++)
{
char str[textl + 1];
// 复制一段字符串
for (int ii = i, iii = 0; ii < textl + i; ii++, iii++)
{
str[iii] = data[ii];
}
bool e = 1;//相同=真
//对比str与text
for (int i = 0; i < textl; i++)
{
//有一个字不同
if (!(str[i] == text[i]))
{
e = 0;//相同=假
}
}
if(e)
{
return i;
}
}
}
return -1;
}
C++从字符串里查找字符串
最新推荐文章于 2024-04-12 11:30:12 发布