Если вы часто используете этот шаблон в своем коде, вы должны написать небольшую вспомогательную функцию, например:
int FindFirstMatch(const char* stringItem, const char** stringList)
{
int index = -1;
int itemLength = strlen(stringItem);
if (stringList == NULL)
{
return index;
}
for (; stringList[index] != NULL; index++)
{
if ( (strlen(stringList[index]) == itemLength)
&& (strstr(stringList[index], stringItem) != NULL))
{
break;
}
}
return index;
}
Функция принимает строку и массив строк с окончанием NULL
в качестве аргументов и возвращает индекс первого вхождения строки в списке. Затем вы можете использовать индекс для проверки длины строки.
Чтобы выполнить проверку, как вы делали в своем примере, вы должны написать:
const char* itemList[] = {"FOO", "FOO2", "FOO3", "BAR", "BAR2", "BAR3", NULL};
int itemLength = 0;
int index = FindFirstMatch("BAR3", itemList);
if (index != -1)
{
itemLength = strlen(itemList[index]);
}