![[8] C review < 전화번호부 알고리즘 version5.0 preview >](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4kfGH%2Fbtrl424k185%2FXq3hZuWIDvmBKKrsq81Ajk%2Fimg.png)
바로 전 전화번호부 알고리즘 version 4.0을 떠올려 봅시다. 위 그림과 같이 4개의 field를 가지는 struct person을 정의한 후 Person type의 directory 배열을 만들어 사용하였습니다. 이 배열의 각 칸이 구조체인 구조입니다. 예를 들어 특정 칸의 특정 멤버정보를 가져올려면 directory[2].number = ~ 이런식으로 표기 하였습니다. 하지만 일반적으로 c프로그래밍에서 이런식의 구조체 배열을 사용하는 것은 일반적인 스타일이 아닙니다. (효율적이지 않습니다.) 예를 들어 version 4.0의 status() 함수에서 print_person함수를 호출하는 과정을 위 그림에서 살펴봅시다. c언어에서 함수를 호출할때 값에 의한 호출 (call by value) 방식을..
![[7] C review < 전화번호부 알고리즘 version4.0 >](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9Fe6G%2FbtrlUN1dHBL%2FtVvxpQkRnCRblO6lsioYMk%2Fimg.png)
동장방식 : 이름과 번호 뿐아니라 email과 소속그룹까지 추가해보자 >> 구조체 이용 , 만약 번호,email,group이 없다면 빈칸으로 둔다. 또한 이름이 하나 이상의 단어로 구성될 수 있으며 단어사이에 여러 개의 공백이 있을 경우 한칸의 공백으로 저장한다. 생각해야할 점 2가지 ! 1. 구조체를 어떻게 사용할 것인가 ? typedef struct person { char *name; char *number; char *email; char *group; } Person; Person directory[CAPACITY]; // Person type의 배열 directory를 선언. person struct를 Person으로 재선언. 2. 빈칸을 어떻게 처리 할 것인가? int compose_name..