Notice
Recent Posts
Recent Comments
Link
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

우리의 IT

C언어 - 표준함수 본문

정보처리기사

C언어 - 표준함수

우리의 IT 2025. 3. 27. 07:11

C 언어 - 표준 함수 (Standard Library Functions)

C 언어 표준 라이브러리 함수란?
C 언어에서 기본적으로 제공하는 함수로, 여러 작업을 쉽게 수행할 수 있도록 미리 정의됨.

표준 라이브러리는 #include를 사용하여 포함
대표적인 표준 함수 종류
📌 입출력 함수 (stdio.h)
📌 문자열 처리 함수 (string.h)
📌 수학 함수 (math.h)
📌 동적 메모리 할당 함수 (stdlib.h)
📌 시간 함수 (time.h)
📌 문자 처리 함수 (ctype.h)


🔹 1. 입출력 함수 (stdio.h)

📌 파일 입출력 및 기본 입력/출력 제공

#include <stdio.h>

int main() {
    printf("Hello, World!\n");  // 출력
    return 0;
}

주요 함수

함수 설명

printf() 화면에 출력
scanf() 키보드 입력 받기
gets() 한 줄 문자열 입력 (사용 지양, fgets() 권장)
fgets() 문자열 입력 (공백 포함 가능)
putchar() 한 문자 출력
getchar() 한 문자 입력
sprintf() 문자열에 데이터 저장

📌 사용 예시 (fgets vs scanf)

#include <stdio.h>

int main() {
    char str[100];
    
    printf("문자열 입력: ");
    fgets(str, sizeof(str), stdin);  // 공백 포함 입력 가능
    printf("입력한 문자열: %s", str);

    return 0;
}

🔹 2. 문자열 처리 함수 (string.h)

📌 문자열 조작 관련 함수 제공

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

int main() {
    char str1[20] = "Hello";
    char str2[20] = "World";

    strcat(str1, str2);  // str1에 str2 추가
    printf("문자열 합치기: %s\n", str1);

    printf("문자열 길이: %lu\n", strlen(str1));

    return 0;
}

주요 함수

함수 설명

strlen(str) 문자열 길이 반환
strcpy(dest, src) 문자열 복사
strncpy(dest, src, n) 문자열 일부 복사
strcat(dest, src) 문자열 연결
strncat(dest, src, n) 문자열 일부 연결
strcmp(str1, str2) 문자열 비교
strncmp(str1, str2, n) 문자열 일부 비교
strchr(str, c) 특정 문자 찾기
strstr(str, substr) 특정 문자열 찾기

🔹 3. 수학 함수 (math.h)

📌 수학 관련 연산 제공 (제곱, 루트, 삼각 함수 등)

#include <stdio.h>
#include <math.h>

int main() {
    double x = 9.0;

    printf("제곱근: %.2f\n", sqrt(x));  
    printf("2의 3승: %.2f\n", pow(2, 3));
    printf("절댓값: %.2f\n", fabs(-5.5));

    return 0;
}

주요 함수

함수 설명

pow(x, y) x^y (x의 y승)
sqrt(x) 제곱근
fabs(x) 절댓값
sin(x), cos(x), tan(x) 삼각 함수
ceil(x), floor(x) 올림, 내림

🔹 4. 동적 메모리 할당 함수 (stdlib.h)

📌 동적으로 메모리를 할당하고 해제할 때 사용

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

int main() {
    int *arr = (int *)malloc(5 * sizeof(int));  // 정수 5개 동적 할당

    if (arr == NULL) {
        printf("메모리 할당 실패\n");
        return 1;
    }

    for (int i = 0; i < 5; i++) {
        arr[i] = i + 1;
        printf("%d ", arr[i]);
    }

    free(arr);  // 할당한 메모리 해제
    return 0;
}

주요 함수

함수 설명

malloc(size) 지정한 크기만큼 메모리 할당
calloc(n, size) 초기화된 메모리 할당
realloc(ptr, newSize) 메모리 크기 변경
free(ptr) 할당된 메모리 해제

🔹 5. 시간 함수 (time.h)

📌 현재 시간 가져오기 및 시간 계산 가능

#include <stdio.h>
#include <time.h>

int main() {
    time_t now;
    time(&now);
    printf("현재 시간: %s", ctime(&now));  

    return 0;
}

주요 함수

함수 설명

time(NULL) 현재 시간 (초 단위)
ctime(&time) 시간을 문자열로 변환
localtime(&time) tm 구조체로 변환
difftime(t1, t2) 두 시간 차이 계산

🔹 6. 문자 처리 함수 (ctype.h)

📌 문자의 종류를 판별하거나 변환할 때 사용

#include <stdio.h>
#include <ctype.h>

int main() {
    char c = 'A';

    if (isalpha(c)) printf("알파벳입니다.\n");
    if (isdigit(c)) printf("숫자입니다.\n");

    printf("소문자로 변환: %c\n", tolower(c));

    return 0;
}

주요 함수

함수 설명

isalpha(c) 알파벳 여부 확인
isdigit(c) 숫자 여부 확인
isspace(c) 공백 문자 여부 확인
toupper(c) 대문자로 변환
tolower(c) 소문자로 변환

🚀 정리

C 표준 라이브러리 주요 헤더 파일

헤더 파일 기능

stdio.h 입출력 함수
string.h 문자열 조작 함수
math.h 수학 연산 함수
stdlib.h 동적 메모리 할당, 변환 함수
time.h 시간 관련 함수
ctype.h 문자 처리 함수

C 표준 함수들을 활용하면 보다 효율적인 프로그래밍이 가능합니다! 🚀