请用C++完成这个任务:实现一个简单的数据库,维护键值对(key-value),支持增删改查。
时间: 2023-02-09 15:22:48 浏览: 62
以下是一个简单的 C 语言实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_KEYS 1000
struct KeyValue {
char key[50];
char value[50];
};
struct KeyValue database[MAX_KEYS];
int keys_count = 0;
void add_key_value(char* key, char* value) {
strcpy(database[keys_count].key, key);
strcpy(database[keys_count].value, value);
keys_count++;
}
void update_value(char* key, char* value) {
for (int i = 0; i < keys_count; i++) {
if (strcmp(database[i].key, key) == 0) {
strcpy(database[i].value, value);
return;
}
}
}
void delete_key(char* key) {
for (int i = 0; i < keys_count; i++) {
if (strcmp(database[i].key, key) == 0) {
for (int j = i; j < keys_count - 1; j++) {
strcpy(database[j].key, database[j + 1].key);
strcpy(database[j].value, database[j + 1].value);
}
keys_count--;
return;
}
}
}
char* get_value(char* key) {
for (int i = 0; i < keys_count; i++) {
if (strcmp(database[i].key, key) == 0) {
return database[i].value;
}
}
return NULL;
}
int main() {
add_key_value("name", "John");
add_key_value("age", "30");
printf("%s\n", get_value("name"));
update_value("age", "31");
printf("%s\n", get_value("age"));
delete_key("name");
printf("%s\n", get_value("name"));
return 0;
}
```
注意,这只是一个简单的实现,并没有考虑边界条件和错误处理。在真实的应用场景中,还需要考虑更多的细节。