우리의 IT
C언어 - 표준함수 본문
✅ 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 표준 함수들을 활용하면 보다 효율적인 프로그래밍이 가능합니다! 🚀
'정보처리기사' 카테고리의 다른 글
| C언어 - 포인터 (0) | 2025.03.27 |
|---|---|
| C언어 - 유틸리티 함수 (0) | 2025.03.27 |
| C언어 - 함수 (0) | 2025.03.27 |
| C 언어 - 1차원 배열, 2차원 배열, 문자열 동시 사용 (0) | 2025.03.26 |
| C 언어 - 1차원 배열 & 2차원 배열 (0) | 2025.03.26 |