分割した文字列を自己参照構造体に入れて要素数をカウント
Posted: 2016年10月23日(日) 23:48
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define CLASS1 "2.1"
#define STU_NUMBER ((sizeof deta1)/(sizeof(struct student)))
typedef struct student{
char name1[100];
char name2[100];
char club[100];
char height1[100];
char height2[100];
char weight1[100];
char weight2[100];
char seibetu[100];
char number[100];
struct student *next;
}student;
sturuct student *add_student(char *name1, name2, club, height1, height2, weight1, weight2, seibetu, number struct student *head);
void show_student(struct student *p);
void free_student(struct student *p);
int main(void)
{
static char deta1[100] = {"Tanaka Taro: 2.1 baseball 170.3 cm 65 Kg man 21"};
static char c1[] = {" :"CLASS1""};,
char *cut;
int i;
cat = strtok(deta1, c1);
head = NULL;
while(cut != NULL)
{
head = *add_student(char *name1, name2, club, height1, height2, weight1, weight2, seibetu, number struct student *head);
printf("%s\n", cut);
cut = strtok(NULL, c1);
}
show_student(head);
show_student(head);
printf("word is %d\n", STU_NUMBER);
return 0;
}
struct student *add_student(char *name1, name2, club, height1, height2, weight1, weight2, seibetu, number struct student *head);
{
struct student *p;
if ((p = (struct student *) malloc(sizeof(struct list))) == NULL) {
printf("malloc error\n");
exit(EXIT_FAILURE);
}
p->next = head;
head = p;
return head;
}
void show_student(struct student *p)
{
while (p != NULL) {
printf("%s\n", p->name1);
p = p->next;
}
}
void free_student(struct student *p)
{
struct student *p2;
while (p != NULL) {
p2 = p->next;
free(p);
p = p2;
}
}
コードは上記のように入力したのですかエラーが出てしまいます。
私は構造体、配列、ポインタは最近勉強始めたばかりです。
コンパイル実行は今現在、できない環境にあるため、返答は一日後あたりになると思います。