在C语言中复制字典可以通过以下步骤实现:
typedef struct {
char key[50];
int value;
} KeyValuePair;
KeyValuePair originalDict[] = {
{"key1", 1},
{"key2", 2},
{"key3", 3}
};
int dictSize = sizeof(originalDict) / sizeof(KeyValuePair);
KeyValuePair* copiedDict = malloc(dictSize * sizeof(KeyValuePair));
for (int i = 0; i < dictSize; i++) {
strcpy(copiedDict[i].key, originalDict[i].key);
copiedDict[i].value = originalDict[i].value;
}
完整的代码示例如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
char key[50];
int value;
} KeyValuePair;
int main() {
KeyValuePair originalDict[] = {
{"key1", 1},
{"key2", 2},
{"key3", 3}
};
int dictSize = sizeof(originalDict) / sizeof(KeyValuePair);
KeyValuePair* copiedDict = malloc(dictSize * sizeof(KeyValuePair));
for (int i = 0; i < dictSize; i++) {
strcpy(copiedDict[i].key, originalDict[i].key);
copiedDict[i].value = originalDict[i].value;
}
// 打印复制后的字典
for (int i = 0; i < dictSize; i++) {
printf("Key: %s, Value: %d\n", copiedDict[i].key, copiedDict[i].value);
}
free(copiedDict); // 释放动态分配的内存
return 0;
}
这是一个简单的示例,演示了如何在C语言中复制字典。根据实际需求,可以根据字典的复杂性和大小进行适当的修改和优化。
领取专属 10元无门槛券
手把手带您无忧上云