21xrx.com
2025-04-22 15:08:14 Tuesday
文章检索 我的文章 写文章
C语言中实现键值对(Dictionary)的方法
2023-06-15 00:49:05 深夜i     530     0
C语言 键值对 结构体

在C语言中,虽然没有内置的Dictionary数据结构,但我们可以用其他数据结构来实现键值对。例如可以使用结构体来保存每个键值对,也可以使用链表或二叉树来存储多个键值对。

以下是一个使用结构体的例子:

#include 
#include 
#include 
struct KeyValue {
  char *key;
  int value;
};
struct KeyValue * createKeyValue(char *key, int value) {
  struct KeyValue *kv = (struct KeyValue*) malloc(sizeof(struct KeyValue));
  kv->key = strdup(key);
  kv->value = value;
  return kv;
}
void deleteKeyValue(struct KeyValue *kv) {
  free(kv->key);
  free(kv);
}
void printKeyValue(struct KeyValue *kv) {
  printf("%s: %d\n", kv->key, kv->value);
}
int main() {
  struct KeyValue *kv1 = createKeyValue("apple", 5);
  struct KeyValue *kv2 = createKeyValue("banana", 3);
  printKeyValue(kv1);
  printKeyValue(kv2);
  deleteKeyValue(kv1);
  deleteKeyValue(kv2);
  return 0;
}

在上面的例子中,我们定义了一个KeyValue结构体,包含一个字符串类型的key和一个整数类型的value。其中createKeyValue函数用来创建新的键值对,输入参数为key和value,返回类型为struct KeyValue*。deleteKeyValue函数用来释放一个键值对,输入参数为struct KeyValue*类型。printKeyValue函数用来打印一个键值对,用于测试代码的正确性。

上述示例的3个

  
  

评论区

请求出错了