结构(搜索)

  • 本文关键字:搜索 结构 c
  • 更新时间 :
  • 英文 :


我设法搜索名称和电话号码。但是,每当有循环循环时,它也会打印"未找到"。

void search(Contact *p, int size, char *tsearch)
{
    int i = 0;
    for(i = 0; i < size; i++){
        if(strcmp(p[i].name, tsearch) == 0){
            printf("Name = %s, Tel = %s n", p[i].name, p[i].telno);
        }
        else
            printf("Name not found!");
    }
}

我应该在哪里放置'printf("找不到名字!")'?

2件事。找到名称后1停止搜索。2.仅当您根本找不到名称时(不仅是当前单元格)。

void search(Contact *p, int size, char *tsearch)
{
    int i = 0;
    boolean found = false;
    for(i = 0; i < size && !found; i++){
        if(strcmp(p[i].name, tsearch) == 0){
            printf("Name = %s, Tel = %s n", p[i].name, p[i].telno);
            found = true;
        }
    }
    if (!found)
    {
        printf("Name not found!");
    }
}

请注意,我添加了一个标志found,以指示是否找到该值并在其后停止循环。我只有在found仍然是错误的情况下,我将未发现的打印移到了循环外部。

最新更新