C 기본 문법 – 함수 – 4 – 표준 라이브러리 함수

C 기본 문법 – 함수 – 4편: 표준 라이브러리 함수 완전 정복

안녕하세요, 여러분! 😊
이번 시간에는 C 언어의 핵심 기능 중 하나인 표준 라이브러리 함수에 대해 알아보겠습니다.
C 언어는 기본적인 문법 외에도, 자주 쓰이는 기능들을 미리 만들어진 함수의 형태로 제공하는데요,
이걸 바로 표준 라이브러리 함수라고 부른답니다.

🧠 비유하자면,
표준 라이브러리 함수는 마치 생활용품이 모두 구비된 부엌과 같아요.
칼, 냄비, 도마, 전자레인지 등 필요한 도구를 이미 갖춰놔서,
우리는 요리(프로그래밍)만 하면 되는 셈이죠!

그럼, 대표적인 표준 라이브러리 함수들과 사용하는 방법을 차근차근 알아볼게요!
함수별 용도와 실제 사용 예제까지 꼼꼼하게 담았습니다 💡


1. 표준 라이브러리란?

C 표준 라이브러리는 ANSI와 ISO에서 정의한 공식 함수 모음집입니다.
헤더 파일을 통해 포함하며, 다양한 범주의 기능을 제공합니다.

대표적인 헤더 파일들

헤더 기능
<stdio.h> 표준 입출력
<stdlib.h> 일반적인 유틸리티 함수 (메모리 할당, 숫자 변환 등)
<string.h> 문자열 처리
<math.h> 수학 계산 함수
<ctype.h> 문자 판별 및 변환
<time.h> 시간과 날짜 처리

2. <stdio.h> – 입출력 함수

주요 함수

함수 설명
printf() 출력 함수
scanf() 입력 함수
putchar() 문자 출력
getchar() 문자 입력

예제

#include <stdio.h>

int main() {
    int age;
    printf("나이를 입력하세요: ");
    scanf("%d", &age);
    printf("당신의 나이는 %d살입니다.
", age);
    return 0;
}

💡 %d, %s, %f 등 서식 지정자를 잘 활용해야 합니다!


3. <stdlib.h> – 범용 함수

주요 함수

함수 설명
malloc(), free() 동적 메모리 할당/해제
atoi() 문자열 → 정수
atof() 문자열 → 실수
rand(), srand() 난수 생성

예제: 난수 생성

#include <stdlib.h>
#include <time.h>

int main() {
    srand(time(NULL));  // 시드 설정
    int r = rand() % 100 + 1;
    printf("랜덤 숫자: %d
", r);
    return 0;
}

4. <string.h> – 문자열 처리

주요 함수

함수 설명
strlen() 문자열 길이 반환
strcpy() 문자열 복사
strcmp() 문자열 비교
strcat() 문자열 연결

예제

#include <string.h>

int main() {
    char name[20] = "홍";
    strcat(name, "길동");  // name = "홍길동"
    printf("이름: %s
", name);
    return 0;
}

🎯 문자열을 다룰 땐 항상 배열의 크기를 고려하세요!


5. <math.h> – 수학 함수

주요 함수

함수 설명
sqrt() 제곱근
pow() 거듭제곱
sin(), cos(), tan() 삼각 함수
abs() 절댓값
ceil(), floor() 올림, 내림

예제

#include <math.h>

int main() {
    double n = 2.0;
    printf("루트2: %.4f
", sqrt(n));
    printf("2의 3제곱: %.1f
", pow(n, 3));
    return 0;
}

📌 sqrt() 같은 함수는 double형을 반환하니, 형 변환에 주의하세요!


6. <ctype.h> – 문자 분석

주요 함수

함수 설명
isalpha() 알파벳 여부 판별
isdigit() 숫자 여부 판별
toupper() 대문자로 변환
tolower() 소문자로 변환

예제

#include <ctype.h>

int main() {
    char ch = 'a';
    if (isalpha(ch)) {
        printf("알파벳입니다: %c
", ch);
        printf("대문자: %c
", toupper(ch));
    }
    return 0;
}

7. <time.h> – 시간과 날짜

주요 함수

함수 설명
time() 현재 시간 반환
localtime() 구조체로 변환
strftime() 날짜 형식 포맷
clock() 프로그램 실행 시간 측정

예제: 현재 시간 출력

#include <time.h>

int main() {
    time_t now = time(NULL);
    struct tm *t = localtime(&now);
    printf("현재 시각: %d년 %d월 %d일
", t->tm_year+1900, t->tm_mon+1, t->tm_mday);
    return 0;
}

8. 표준 라이브러리 함수의 장점

장점 설명
재사용성 자주 쓰이는 기능을 따로 구현할 필요 없음
안정성 오랜 테스트를 거쳐 신뢰도가 높음
성능 대부분 OS 수준 최적화
문서화 사용 방법이 잘 정리되어 있음 (man 페이지 등)

✅ 표준 라이브러리 함수 요약

카테고리 주요 함수
입출력 (<stdio.h>) printf(), scanf()
유틸리티 (<stdlib.h>) rand(), atoi(), malloc()
문자열 (<string.h>) strlen(), strcpy(), strcmp()
수학 (<math.h>) sqrt(), pow(), abs()
문자 분석 (<ctype.h>) isalpha(), toupper()
시간 (<time.h>) time(), localtime()

⚠️ 표준 라이브러리 함수 사용 시 주의할 점

주의사항 설명
헤더파일 반드시 포함 해당 함수가 포함된 헤더가 있어야 컴파일 가능
데이터 타입 확인 함수의 반환형과 인자형이 기대한 것과 다를 수 있음
문자열 처리 주의 strcpy() 등은 버퍼 오버플로우 위험 존재
난수는 srand()로 초기화 rand() 사용 전에 꼭 srand(time(NULL)) 호출

마무리하며 💬

표준 라이브러리 함수는 C 언어 개발자의 든든한 조력자입니다!
필요한 기능이 있을 때 직접 구현하지 말고, 표준 함수부터 먼저 찾아보는 습관을 들여보세요.

🎯 마치 레고 블록처럼, 이미 준비된 조각들을 조립해서 멋진 프로그램을 만들 수 있어요!

다음 시간에는 사용자 정의 함수와 표준 라이브러리 함수의 차이점,
그리고 라이브러리 함수 내부 구현 방식에 대한 간단한 이해도 도와드릴게요 😊

함께 공부해서 더 강해지는 C 언어!
계속해서 파워업해볼까요? 💪🔥

답글 남기기