我真的需要帮助我的程序的最后一部分。我需要在更大的字符串中找到一个字符串,如果找到则返回子字符串的起始位置。从方向:
请注意,您的字符串位置从 0 开始,以长度 -1 结束。如果未找到该字符串,则将返回值 -1。
我已经开始并编译了以下代码,我只想知道这是否真的正确。我不想太过分,但我需要专家的一些反馈。我这样做对吗?或者至少我朝着正确的方向前进?
const int MyString::Find(const MyString& other)
{
int start(0);
int counter(0);
int end = other.Size;
int count(0);
int end1 = Size;
int nfound = -1;
char* temp;
temp = new char[other.Size];
if(other.String[0] != '\0' && other.String[0] != ' ')
{
if(other.String[count] == String[counter])
{
start = counter;
for(int i = count; i < end-1;i++)
{
for(int j = counter; j < end1 -1; j++)
{
temp[j] = String[j];
}
}
if(other == temp)
{
return start;
}
else
return nfound;
}
else{
while(other.String[count] != String[counter])
{
counter++;
if(other.String[count] == String[counter])
{
start = counter;
for(int i = count; i < end-1;i++)
{
for(int j = counter; j < end1 -1; j++)
{
temp[j] = String[j];
}
}
if(other == temp)
{
return start;
}
else
return nfound;
}
}
}
}
else
{
return nfound;
}
}