我想解析一个字符缓冲区并将其存储在数据结构中。缓冲区的第一个 4 个字节指定名称,第二个四个字节指定值的长度 (n),接下来的 n 个字节指定值。
例如:char *buff = "aaaa0006francebbbb0005swisscccc0013unitedkingdom"
我想从缓冲区中提取名称和值并将其存储为数据结构。例如: char *name = "aaaa" char *value = "france"
char *name = "bbbb"
char *value = "swiss"
存储后,我应该能够使用名称访问数据结构中的值。我应该使用什么数据结构?
编辑(来自评论):我尝试了以下方法:
struct sample {
char string[4];
int length[4];
char *value; };
struct sample s[100];
while ( *buf ) {
memcpy(s[i].string, buf, 4);
memcpy(s[i].length, buf+4, 4);
memcpy(s[i].value, buf+8, s.length);
buf += (8+s.length);
}
我应该三次调用 memcpy 吗?有没有办法通过只调用一次 memcpy 来做到这一点?