c语言 map 用value输出key
时间: 2024-05-13 11:17:55 浏览: 67
在 C 语言中,没有原生的 Map 数据结构。不过可以使用结构体和数组来模拟实现一个 Map。如果你想要通过 value 值查找对应的 key,可以在结构体中存储两个数组,一个数组存储 key 值,另一个数组存储 value 值。然后遍历 value 数组,找到相应的 value 值,再返回对应的 key 值。
下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <string.h>
struct map {
char keys[100][50];
int values[100];
int size;
};
void insert(struct map *m, char *key, int value) {
strcpy(m->keys[m->size], key);
m->values[m->size] = value;
m->size++;
}
char* get_key(struct map *m, int value) {
for (int i = 0; i < m->size; i++) {
if (m->values[i] == value) {
return m->keys[i];
}
}
return NULL;
}
int main() {
struct map m;
m.size = 0;
insert(&m, "apple", 1);
insert(&m, "banana", 2);
insert(&m, "cherry", 3);
int value = 2;
char *key = get_key(&m, value);
if (key != NULL) {
printf("The key for value %d is %s.\n", value, key);
} else {
printf("Value %d not found.\n", value);
}
return 0;
}
```
输出结果为:
```
The key for value 2 is banana.
```
阅读全文