C语言有一个结构体数组循环结构体遍历数组根据结构体中的字符串执行对应的不同的函数。
以下是一个示例代码:
#include <stdio.h>
#include <string.h>
// 定义结构体
struct Data {
char name[20];
int age;
};
// 函数声明
void func1(struct Data data);
void func2(struct Data data);
void func3(struct Data data);
int main() {
// 初始化结构体数组
struct Data arr[] = {
{"Tom", 20},
{"Jerry", 22},
{"Mike", 18}
};
int len = sizeof(arr) / sizeof(arr[0]);
// 循环遍历结构体数组
for (int i = 0; i < len; i++) {
struct Data data = arr[i];
// 根据结构体中的字符串执行对应的函数
if (strcmp(data.name, "Tom") == 0) {
func1(data);
} else if (strcmp(data.name, "Jerry") == 0) {
func2(data);
} else if (strcmp(data.name, "Mike") == 0) {
func3(data);
}
}
return 0;
}
// 函数定义
void func1(struct Data data) {
printf("func1: name=%s, age=%d\n", data.name, data.age);
}
void func2(struct Data data) {
printf("func2: name=%s, age=%d\n", data.name, data.age);
}
void func3(struct Data data) {
printf("func3: name=%s, age=%d\n", data.name, data.age);
}
以上代码中,定义了一个结构体 Data,包含两个成员变量 name 和 age,表示姓名和年龄。接着定义了三个函数 func1、func2 和 func3,分别输出结构体中的姓名和年龄。在 main 函数中,初始化了一个结构体数组 arr,循环遍历结构体数组,根据结构体中的字符串执行对应的函数。例如,当结构体中的姓名为 "Tom" 时,执行 func1 函数,输出 "func1: name=Tom, age=20"
原文地址: https://www.cveoy.top/t/topic/htpj 著作权归作者所有。请勿转载和采集!