我的删除功能正在发挥作用。假设我将“Apple”、“Boy”、“Cat”添加到我的数组中。它按字母顺序排序。当我删除某些东西时,可以说“男孩”,它可以很好地删除。但是如果我输入“棕色”,它会从我的列表中删除“猫”。如果在列表中找不到它,它将始终按字母顺序删除它下面的那个。如果我有上面提到的那些字符串并输入“Dog”,则不会发生任何事情,因为“Cat”在“Dog”之前。有任何想法吗?
void StringList::remove(string s)
{
int loc = search(s, 0, numberOfStrings);
if(loc!=-1)
{
for(int i=loc; i<(numberOfStrings)-1; i++)
{
str[i] = str[i+1];
}
numberOfStrings--;
}
}
int StringList::search(string s, int start, int end)
{
for(int i=start; i<=end; i++)
{
if(str[i]>=s)
{
return i;
}
}
return -1;
}