入力データが文字列の固定長データで与えられる場合に、構造体に代入
することで分解できる(?)と聞いたので試してみたのですがうまくいきません。
良いやり方をご教示ください。
固定長データは、年次(4byte)、クラス(4byte)..のようにいくつかの項目を持っており、
これを予め用意しておいた構造体に代入して、アロー演算子でそれぞれの項目のデータを参照できるようにしたいです。
書いてみたコードはこちらです。
C
1#include <stdio.h> 2#include <stdlib.h> 3#include <string.h> 4 5typedef struct{ 6 char year[4]; 7 char class[4]; 8}student; 9 10void strToStudent(student *seito, char *instr){ 11 seito = (student*)instr; 12 printf("year = %s%n" ,seito->year); //1234と表示させたい 13 printf("year = %s%n" ,seito->class); //5678と表示させたい 14} 15 16int main(void){ 17 student *data = NULL; 18 char *str = "12345678" //入力データ。本当は外部モジュールから引き渡される 19 strToStudent(data,str); 20 return 0; 21}
実行結果 year = 12345678 //null文字が無いので1234で止まらず最後までアクセスしてしまう class = 5678
追記
目的としては、
いくつかの項目が連結されている文字列データを手間をかけずにパースする方法を探しています。
おススメの手法があれば、合わせて教えていただけると助かります。
回答3件
あなたの回答
tips
プレビュー