Вместо вашего для l oop кажется, что вы имеете в виду следующее
for ( const auto &s : ad )
{
if ( s.find( q ) != std::string::npos ) std::cout << s << '\n';
}
Вот демонстрационная программа.
#include <iostream>
#include <string>
int main()
{
std::string ad[] =
{
"sabit", "two", "sally", "water", "mike", "alice", "paris", "david", "martin"
};
char q = 's';
for ( const auto &s : ad )
{
if ( s.find( q ) != std::string::npos ) std::cout << s << '\n';
}
return 0;
}
Ее вывод
sabit
sally
paris
Если вы хотите обойти не весь массив, а его часть, то вместо l-1013 *, основанного на диапазоне, вы можете использовать обычное для l oop, как
for ( std::string::size_type i = 0; i < 7; i++ )
{
if ( ad[i].find( q ) != std::string::npos ) std::cout << ad[i] << '\n';
}