Я думаю, что вы используете strcmp
неправильно. Возвращает 0
, если обе строки совпадают, поэтому вам нужно strcmp() == 0
. Посмотрите здесь для возможных возвращаемых значений.
Далее, поскольку вы уже используете std::string
s, просто сравните их напрямую, они поддерживают это:
if(Contact == ContactNumber[Counter].NameEntry)
Кроме того, вы не выходите из цикла for после нахождения записи, которую хотите удалить.
Еще один дополнительный совет: ваша телефонная книга может содержать повторяющиеся записи, так как вы не проверяете, существует ли человек в вашей функции AddEntry
.
И, наконец, после того, как вы прошли через всю эту сложность поддержания того, что по сути является отображением из одной строки в другую, для дальнейшего использования такой структуры данных рассмотрите возможность использования std::map
. :)
#include <map>
int main(){
map<string /*name*/, string /*number*/> phonebook;
phonebook["Meyers"] = "03024233";
string number = phonebook.find("Meyers");
}