= 0) // 검색 성공 { printf("%s의 전화번호 %s로 전화를 겁니다...\n", arr[in"> = 0) // 검색 성공 { printf("%s의 전화번호 %s로 전화를 겁니다...\n", arr[in"> = 0) // 검색 성공 { printf("%s의 전화번호 %s로 전화를 겁니다...\n", arr[in">
// 예제 10-8 : 구조체 포인터의 활용
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>

#define STR_SIZE 20

typedef struct contact
{
	char name[STR_SIZE];
	char phone[STR_SIZE];
	int ringtone;
} CONTACT;

int ex10_08(void)
{
	CONTACT arr[] = {	// 초기화된 배열
		{"김석진","01011112222", 0},
		{"전정국","01012345678", 1},
		{"박지민","01077778888", 2},
		{"김남준","01098765432", 9},
		{"민윤기","01011335577", 5},
		{"정호석","01024682468", 7},
		{"김태형","01099991111", 3}
	};
	int size = sizeof(arr) / sizeof(arr[0]);	// 배열의 크기
	int i;
	char name[STR_SIZE];	// 입력받은 이름을 저장할 문자 배열
	int index;
	CONTACT* recent = NULL;	// 마지막으로 검색한 연락처를 가리키는 포인터

	while (1)
	{
		printf("이름(. 입력 시 종료)? ");
		scanf("%s", name);
		if (strcmp(name, ".") == 0)		// name이 "."이면 while 탈출
			break;

		index = -1;		// 이름을 찾을 수 없으면 -1
		for (i = 0; i < size; i++)
		{
			if (strcmp(arr[i].name, name) == 0)	// 문자열 비교
			{
				index = i;
				break;
			}
		}
		if (index >= 0)		// 검색 성공
		{
			printf("%s의 전화번호 %s로 전화를 겁니다...\\n",
				arr[index].name, arr[index].phone);
			recent = &arr[index];		// recent는 찬은 원소를 가리킨다.
		}
		else	// 검색 실패
		{
			printf("연락처를 찾을 수 없습니다.\\n");
		}
	}
	if (recent)		// recent가 NULL이 아니면 최근 통화 연락처를 출력한다.
		printf("최근 통화: %s %s\\n", recent->name, recent->phone);

	return 0;
}