在C中是否有实现在数组中搜索多个字符串的实现?
给出一个字符串数组strings[] = {"string1", "string2" ,"string3"}
,如何一次搜索它们是否存在于字符串数组中?我想避免在strings[]
数组中为每个单词搜索字符串数组。
答案 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;