在struct数组中搜索字符串

时间:2017-10-07 14:26:35

标签: c arrays string struct

我编辑了这个问题,因为解决方案没有按照预期的那样工作。是否有可能编写某种if语句或任何其他代码,当输入的字符串在该结构数组中不存在时打印出错误消息?在打印出错误消息后,它再次请求该字符串。我已经尝试了一段时间,似乎无法做到正确。

int ordet=0; char_sokafras[20];
printf("Name?\n");
scanf("%s", soka_fras);
while(ordet<*num_items)
{
if(strstr(varor[ordet].name, soka_fras))
{
printf("Name found!\n");
soka[hitta_tecken]=varor[ordet];
hitta_tecken+=1;
}
ordet+=1;
}

1 个答案:

答案 0 :(得分:1)

strstr返回指向haystack中子字符串开头的指针。从联机帮助页:

  

如果针是空字符串,则返回haystack;如果在haystack中无法发生针,则返回NULL;否则返回指向第一次出现针的第一个字符的指针。

修改while循环应该足够了:

while (strstr(varor[i].name, soka_fras) != NULL)