9.5.1 고양이 정보 초기화하기
큰 상자에서 뽑는 고양이는 5마리입니다. 각 고양이는 이름, 나이, 특징, 레벨이라는 4가지 정보로 구분합니다. 고양이마다 값은 다르지만 정보의 종류는 동일하므로 구조체로 정의하겠습니다. 정의한 구조체를 이용해 고양이 정보를 초기화합니다. 이 부분은 initCats()라는 함수를 만들어 처리하겠습니다.
➊ main()함수 위에 고양이에 관한 정보를 저장하는 구조체를 typedef로 정의합니다. 이때 구조체명은 넣지 않고 구조체 별명만 CAT으로 붙입니다. 고양이 정보 4가지에서 이름(name)과 특징(character)은 문자형 포인터 변수로, 나이(age)와 레벨(level)은 정수형 변수로 정의합니다. 레벨의 범위는 1~5이고, 숫자가 클수록 키우기 어렵다는 뜻입니다.
➋ 큰 상자에 들어갈 고양이 목록을 저장하는 배열을 선언합니다. 고양이 정보를 구조체로 정의했으므로 이를 사용하는 구조체 배열로 선언합니다.
➌ main()함수 위에 initCats()함수를 선언합니다. 정보를 저장만 하므로 전달하거나 반환할 값은 없습니다.
➍ main()함수 아래에 initCats()함수를 정의합니다. initCats()함수는 앞에서 선언한 cats 구조체 배열에 접근해 고양이 5마리의 정보를 저장합니다. 고양이 정보로 넣는 내용은 각각 이름, 나이, 특징, 레벨입니다.
TIP 고양이 정보로 저장하는 값은 책과 달리 원하는 내용으로 넣어도 상관없습니다. 친숙한 정보를 활용해 코드를 재미있게 작성해도 좋습니다.