在C中搜索结构数组

时间:2015-04-04 16:19:58

标签: c

在C编程中搜索包含字符串和整数的结构数组的最佳方法是什么?

结构数组的一个轴:

struct person {
    int age;
    int length;
    char fname[20];
    char lname[20];
};
Typedef struct person Person

int main()
{
    Person personarray[100];
}    

1 个答案:

答案 0 :(得分:0)

一位评论者指出您可以使用bsearch。 但是一个简单的基于循环的编码示例来回答关于如何遍历数组的问题。

#define MAX_NUMBER_OF_PEOPLE 100
#define NAME_BOB "Bob"

struct person {
    int age;
    int length;
    char fname[20];
    char lname[20];
};

typedef struct person Person;

int main()
{
    Person people[MAX_NUMBER_OF_PEOPLE];
    for (int i; i < sizeof (people) / sizeof (struct people); i++) {
         Person *person = &people[i];
         if (person->age == 21) {
             println("%s %s can legally drink\n", 
                   person->fname,  person->lname);
         }
         if (strncmp(person->fname, NAME_BOB, sizeof (NAME_BOB)) == 0) {
             println("Bob is %d years old\n", 
                   person->age);
         }
    }
}