搜索数组中的多个字符串

时间:2018-11-25 22:43:28

标签: c arrays string

在C中是否有实现在数组中搜索多个字符串的实现?

给出一个字符串数组strings[] = {"string1", "string2" ,"string3"},如何一次搜索它们是否存在于字符串数组中?我想避免在strings[]数组中为每个单词搜索字符串数组。

1 个答案:

答案 0 :(得分:0)

最后,您需要将最终数组中的每个元素与每个搜索字符串模式进行比较。但是,如果您只想查找模式是否至少存在一次,则可能会有更有效的方法来执行此操作,并避免进行一些比较。例如:

string patterns[] = {"string1", "string2", "string3"};
int hasFoundElement[] = {0, 0, 0};
int numElementsFound = 0;

for (int i = 0; i < arrayLength; i++)
{
  for (int j = 0; j < patternsLength; j++)
  {
    if (!hasFoundElement[j] &&
        strcmp(patterns[j], array[i]) == 0)
    {
      hasFoundElement[j] = 1;
      numElementsFound++;
      if (numElementsFound == patternsLength)
      {
         return true;
      }
    }
}
return false;