我正在构建电话簿程序,遇到一些麻烦。
我有一个findContact函数,可以搜索整个列表,如果找到,则返回true。
bool AddressBook::findContact(std::string name)
{
for (int i = 0; i < length; i++)
{
if (name == phoneBook[i]->name)
{
std::cout << phoneBook[i];
return true; //if found, return true
}
}
return false;
}
我想实现此功能以帮助我找到联系人,并在我的删除和编辑功能(例如
)中使用它void AddressBook::deleteContact(std::string nameMatch) //need to implement find contact && not found if there is a space at end of name
{
if (length == 0)
{
std::cout << "Phonebook is empty" << std::endl;
return;
}
else
{
bool found = false;
for (int i = 0; i < length; i++)
{
if (phoneBook[i]->name == nameMatch)
{
std::cout << phoneBook[i]->name << " deleted" << std::endl;
//found item
phoneBook[i] = phoneBook[length - 1];
length--;
found = true;
}
}
if (found == false)
{
std::cout << "Person, " << nameMatch << " was not found" << std::endl;
}
}
return;
}
和
void AddressBook::editContact(std::string nameMatch)
{
findContact(nameMatch);
}
很明显,我的editContact几乎没有启动,但是我想问更多有关deleteContact的问题。如您所见,我已经在函数本身中实现了搜索算法,而不是使用我编写的findContact代码。我的问题是,如果我决定使用findContact,我不知道如何实现在我的deleteContact中使用它获得的索引'i'。
我可以将其更改为bool(已完成),但是后来我不知道如何传递索引。