【C言語入門】
csvファイルを読んで構造体に設定する正規表現の使い方

■csvを解析する正規表現の使い方

#include <stdio.h>
#include <stdlib.h>
//構造体の宣言
typedef struct 個人情報 {
    char    住所[1024];
    char    氏名[1024];
    int     年齢;
}   個人情報 ;
//構造体配列の定義
static  個人情報  一覧[10];

//構造体ポインタを使った構造体のメンバ表示
static  void 個人情報表示(個人情報 *p)
{
    printf("■%s\n",p->住所);
    printf("%s\n",p->氏名);
    printf("%d\n",p->年齢);
}
static void 全個人情報表示(void)
{
    for(個人情報 *p = &一覧[0]; p->氏名[0] != '\0' ;p++){
        個人情報表示(p);
    }
}
static void 全個人情報設定(FILE *fp)
{
    個人情報 *p = &一覧[0];
    char    buf[BUFSIZ];
    const int max = sizeof(一覧)/sizeof(一覧[0]);
    while(fgets(buf,BUFSIZ,fp) != NULL){
        //空行はスキップ
        if(buf[0] == '\n'){
            continue;
        }
        //入力データが多すぎないか確認
        int id = p - &一覧[0];
        if(id >= max){
            fprintf(stderr,"最大値 %d 件を超えました\n",max);
            exit(1);
        }
        //【住所,氏名,年齢】3フィールド読み込む
        int ret = sscanf(buf,
            "%[^,],%[^,],%d",//正規表現【カンマ以外,カンマ以外,数字】
            p->住所,
            p->氏名,
            &(p->年齢)
        );
        if(ret != 3){//3フィールド読めなかったら無視
            fprintf(stderr,"入力異常 ret=%d:%s",ret,buf);
            continue ;
        }
        p++ ;
    }
}
int     main(void)
{
    char    *input = "input.csv";
    FILE    *fp = fopen(input,"r");
    if(fp == NULL){
        fprintf(stderr,"%s 開かん\n",input);
        exit(1);
    }
    
    全個人情報設定(fp);
    全個人情報表示();

    fclose(fp);
}

コピペしてコンパイル&実行して動作を確認してください。

■input.csvの例

愛知,山田太郎,4
岐阜,佐藤次郎,5
三重,鈴木三郎,6