文字バッファーを解析し、データ構造に格納したいと考えています。バッファーの最初の 4 バイトは名前を指定し、2 番目の 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 を 3 回呼び出す必要がありますか? 一度だけ memcpy を呼び出す方法はありますか?