2018年4月10日火曜日

開発環境

Head First C ―頭とからだで覚えるCの基本 (David Griffiths (著)、Dawn Griffiths (著)、中田 秀基 (監修)、木下 哲也 (翻訳)、オライリージャパン)の6章(データ構造と動的メモリ - 架け橋を築く)、プールパズル(p. 287)を取り組んでみる。

プールパズル(p. 287)

Makefile

CC = cc

all: run

sample: sample.c
 $(CC) sample.c -o sample

run: sample
 ./sample
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct Island Island;
void Island_display(Island*);

struct Island {
  char *name;
  char *opens;
  char *closes;
  struct Island *next;
};

Island* Island_new(char *name) {
  Island *i = malloc(sizeof(Island));
  i->name = strdup(name);
  i->opens = "09:00";
  i->closes = "17:00";
  i->next = NULL;
  return i;
}

void Island_display(Island *start) {  
  for (Island *i = start;i != NULL; i = i->next) {
    printf("名前: %s 営業時間: %s-%s\n",
           i->name, i->opens, i->closes);
  }
}

int main() {
  Island *start = NULL;  
  Island *next = NULL;
  char name[80];
  for(Island *i = NULL; fgets(name, 80, stdin) != NULL; i = next) {
    next = Island_new(name);
    if (start == NULL) {
      start = next;
    } else {
      i->next = next;
    }
  }
  Island_display(start);
}

入出力結果(Terminal)

$ make
cc sample.c -o sample
./sample
アトランティス
ティッチマーシュ島
名前: アトランティス
 営業時間: 09:00-17:00
名前: ティッチマーシュ島
 営業時間: 09:00-17:00
$

0 コメント:

コメントを投稿