结构体数组中按关键字查找满足条件的数据节点代码
时间: 2023-11-30 07:03:26 浏览: 87
假设我们有一个结构体数组`students`,其中每个元素包含`name`、`age`和`score`三个字段,现在要按照关键字`name`查找满足条件的数据节点,可以使用以下代码实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 100
struct student {
char name[20];
int age;
float score;
};
int main() {
struct student students[MAX_STUDENTS] = {{"Alice", 18, 90.0}, {"Bob", 20, 85.5}, {"Charlie", 19, 92.3}};
int num_students = 3;
char target_name[20];
printf("Enter the name you want to search: ");
scanf("%s", target_name);
for (int i = 0; i < num_students; i++) {
if (strcmp(students[i].name, target_name) == 0) {
printf("Name: %s, Age: %d, Score: %.1f\n", students[i].name, students[i].age, students[i].score);
}
}
return 0;
}
```
首先定义了一个结构体`student`,包含`name`、`age`和`score`三个字段。然后定义了一个结构体数组`students`,其中每个元素是一个`student`结构体。接着输入要搜索的关键字`name`,并在循环中遍历数组,判断每个元素的`name`字段是否等于目标关键字,如果相等则输出该元素的所有字段。注意要使用`strcmp`函数来比较两个字符串是否相等。