C struct array and search:尝试匹配成员并在找到匹配项时抛出整个结构。

时间:2013-02-23 03:38:38

标签: c search struct printf

这是结构

int main() {
    typedef struct {
        char firstName[25];
        char lastName[30];
        char street[35];
        char city[20];
        char state[3];
        int zip;
        char phone[15];
        int accountId;
    }Customer ;

说我用x数据填写这个数据。

根据其成员搜索此结构的数组索引的简单方法是什么,然后打印“Customers”信息。具体来说,我希望按州搜索客户。

1 个答案:

答案 0 :(得分:2)

下面是一个我认为会有所帮助的例子。当然,需要扩展客户定义,记录打印和数据填充。另请注意,customer []在此示例中位于堆栈中,因此其成员不会归零,因此应以某种方式设置为预期值。

#include <string.h>
#include <stdio.h>

#define NUM_RECORDS   10

int main()
{
    int i;
    typedef struct {
        char state[3];
    } Customer;

    Customer customer[NUM_RECORDS];
    strcpy(customer[2].state, "CA");

    for (i = 0; i < NUM_RECORDS; i++)
    {
        // if this customer record's state member is "CA"
        if (!strcmp(customer[i].state, "CA"))
            printf("state %d: %s\n", i, customer[i].state);
    }

    // Prints "state 2: CA"

    return 0;
}