|
/*
文字列が、例の様に","(カンマ)区切りで、スペースが入っていないのであれば
sscanfで読み込むのが、普通かと思います。
sample
*/
#include <stdio.h>
#include <stdlib.h>
typedef struct {
char TCD[128]; //担当者コード
char SCD[128]; //商品コード
long Su; //数量
} DATAINFO;
int main(int argc,char **argv)
{
DATAINFO *dat3;
char temp[]="ABC,123,DEF,456";
long dummy;
int n,err;
dat3 = malloc(sizeof(DATAINFO));
if (dat3) {
n = sscanf(temp,"%[^,],%d,%[^,],%d",dat3->TCD,&dummy,dat3->SCD,&dat3->Su);
if (n == 4) {
printf("TCD: %s\tdummy: %d\tSCD: %s\tSu: %d\n",dat3->TCD,dummy,dat3->SCD,dat3->Su);
err = 0;
} else {
printf("sscanf error\n");
printf("TCD: %s\tdummy: %d\tSCD: %s\tSu: %d\n",dat3->TCD,dummy,dat3->SCD,dat3->Su);
err = 1;
}
free(dat3);
} else {
printf("malloc error\n");
err = -1;
}
return err;
}
|