私の削除機能が作動しています。「Apple」、「Boy」、「Cat」を配列に追加するとします。アルファベット順に並べ替えます。何かを削除するときは、「Boy」としましょう。問題なく削除されます。しかし、「茶色」と入力すると、リストから「猫」が削除されます。リストに見つからない場合は、常にその下にあるものをアルファベット順に削除します。上記の文字列があり、「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;
}