Удалите массив слов и затем используйте стандартный алгоритм std::find
или std::any_of
.
, например
const char * words[] =
{
"ape", "eat", "sleep", "mango"
};
if ( std::find( std::begin( words ), std::end( words ), name ) != std::end( words ) )
{
//...
}
, если вы объявите отсортированный массив, тогда выможно использовать стандартный алгоритм std::binary_search
.
Вот демонстрационная программа
#include <iostream>
#include <string>
#include <iterator>
#include <algorithm>
int main()
{
const char * words[] =
{
"eat", "ape", "mango", "sleep"
};
std::string name( "mango" );
if ( std::binary_search( std::begin( words ), std::end( words ), name ) )
{
std::cout << name << " is a correct name\n";
}
return 0;
}
Ее вывод
mango is a correct name
Или поместить слова в стандартный контейнер какнапример std::set
и использовать метод поиска контейнера.