[c언어] 주민등록번호 입력 받아서 평균 수명 구하기 / 문자열 함수 연습 (strtok, strncpy 등)

2021. 2. 3. 11:29Computer Science/C

 

문자열 함수 연습을 위해 주민등록번호를 입력 받아서 평균 수명을 더한 년도를 출력하는 프로그램을 작성한다.

 

* 주민등록번호는 '-' 를 포함해서 정확히 입력된다고 가정한다.

* 남자의 평균 수명은 77, 여자의 평균수명은 84세로 가정한다.

 

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(void)
{
    char id[15], id1[10], id2[10], gender[1];
    int year, exage;
    printf("주민등록번호 입력 <'-' 포함>: ");
    scanf("%s", id);
    
    strncpy(id1, id, 2);
    year = atoi(id1) + 1900;
    printf("당신은 %d년도 생이군요.\n", year);
    
    strtok(id, "-");
    *id2 = *strtok(NULL, "\0");
    
    strncpy(gender, id2, 1);
    
    if (*gender == '1') {
        exage = year + 77;
        printf("남자분이시군요.\n");
        printf("평균 수명 77을 더하면 %d까지 산다고 계산됩니다.\n", exage);
    }
    
    else {
        exage = year + 84;
        printf("여자분이시군요.\n");
        printf("평균 수명 84을 더하면 %d까지 산다고 계산됩니다.\n", exage);
    }
    
    return 0;
}

 

출력결과는 아래와 같다.