본문 바로가기
반응형

Computer Science60

[C #16] 문자열 입력 기본 함수와 상황별 선택 코딩 테스트에서 C언어로 문자열 입력을 처리할 때는 제한된 시간과 메모리 내에서 효율적으로 입력받아야 합니다. 이를 위해 몇 가지 팁을 정리했습니다.1. 문자열 입력 기본 함수와 상황별 선택1) scanf (주로 사용)사용 조건: 공백 없이 단일 문자열 입력.사용 예:char str[100];scanf("%s", str);장점:간단하며 대부분의 테스트 케이스에 적합.주의:공백 기준으로 입력이 끊기므로 여러 단어 입력이 필요한 경우 적합하지 않음.2) fgets (공백 포함 입력)사용 조건: 공백을 포함한 한 줄 입력.사용 예:char str[100];fgets(str, sizeof(str), stdin);장점:공백 포함 문자열 입력 가능.주의:입력 끝에 줄바꿈 문자(\n)가 포함되므로 제거 필요:str[.. 2024. 12. 14.
[C #15] 문자열 (Strings) 문자열 (Strings)문자열은 문자 배열이며 마지막에 **'\0'**으로 종료.C에서 문자열 처리는 **** 라이브러리의 다양한 함수를 통해 수행. 3. 문자열 처리 주요 함수:strlen: 문자열 길이 반환.strcpy, strncpy: 문자열 복사.strcat, strncat: 문자열 연결.strcmp, strncmp: 문자열 비교.strchr, strstr: 특정 문자 또는 문자열 검색.동적 메모리를 통해 문자열 크기를 유연하게 관리 가능.strlen문자열 길이 계산strcpy문자열 복사strcat문자열 연결strcmp문자열 비교strchr특정 문자 검색strstr특정 문자열 검색strtok문자열 분리memset메모리 초기화memcpy메모리 복사 13.1 문자열이란?문자열은 문자의 배열로, 마지막.. 2024. 12. 13.
[C #14] 동적 메모리 할당 (Dynamic Memory Allocation) 동적 메모리 할당 (Dynamic Memory Allocation)1. 동적 메모리 할당이란?동적 메모리 할당은 프로그램 실행 중에 메모리를 동적으로 요청하고 해제하는 기능입니다.C 언어에서는 malloc, calloc, realloc, **free**를 사용하여 메모리를 관리합니다.장점:컴파일 타임이 아닌 런타임에 필요한 만큼 메모리를 할당 가능.프로그램의 유연성과 효율성 증가.단점:메모리 누수 가능성.프로그래머가 직접 메모리를 해제해야 함.2. 동적 메모리 할당 함수1) malloc (Memory Allocation)메모리를 초기화하지 않고 필요한 크기만큼 할당.반환값: 할당된 메모리의 시작 주소를 가리키는 포인터.사용법:void* malloc(size_t size);예제:#include #inclu.. 2024. 12. 12.
[C언어 13] 포인터와 배열 (Pointers and Arrays) 포인터와 배열 (Pointers and Arrays)포인터와 배열:배열 이름은 첫 번째 요소의 주소를 가리키는 포인터.arr[i]는 *(arr + i)와 동일.다차원 배열과 포인터:arr[i][j]는 *(*(arr + i) + j)와 동일.동적 2차원 배열은 이중 포인터로 처리.포인터 배열과 배열 포인터:포인터 배열: 여러 포인터를 저장.배열 포인터: 배열 전체를 가리킴.12.1 포인터와 배열의 관계1) 배열은 포인터처럼 작동배열의 이름은 배열의 첫 번째 요소의 주소를 나타냅니다.arr은 &arr[0]과 동일한 의미를 가집니다.#include int main(void) { int arr[5] = {10, 20, 30, 40, 50}; printf("arr: %p\n", arr); .. 2024. 12. 11.
[C #12] 포인터 (Pointers) 포인터 (Pointers) 요약포인터는 메모리 주소를 저장하며, 간접적으로 데이터를 조작.배열과 포인터:배열 이름은 첫 번째 요소의 주소를 가리키는 포인터.arr[i]는 *(arr + i)와 동일.함수 포인터:함수를 가리키는 포인터로, 동적 함수 호출 가능.동적 메모리와 포인터:malloc, calloc, realloc, free를 통해 메모리를 동적으로 관리. 11.1 포인터의 개념**포인터(pointer)**는 다른 변수의 메모리 주소를 저장하는 변수입니다.**주소 연산자 (&)**와 **역참조 연산자 (*)**를 통해 값을 다룹니다.포인터의 선언데이터타입 *포인터이름;예제#include int main(void) { int x = 10; int *p; // 정수를 가리키는 포.. 2024. 12. 10.
[C# 11] Makefile 분석 Makefile이란?Makefile은 make 명령을 이용해 프로그램의 컴파일과 빌드 과정을 자동화하는 파일입니다.다중 소스 파일을 관리하며, 파일 의존성을 기반으로 필요한 부분만 재컴파일하여 시간을 절약합니다.Makefile의 기본 구성 요소1) 목표(Target)빌드해야 할 대상 파일(예: 실행 파일 이름).2) 의존성(Dependencies)대상 파일이 생성되기 위해 필요한 파일(예: 소스 파일, 헤더 파일).3) 명령(Rules)의존성을 만족하기 위해 실행할 명령어(예: 컴파일 명령).기본 Makefile 구조# 변수 설정CC = gcc # 컴파일러 설정CFLAGS = -Wall -g # 컴파일 플래그 설정# 소스 및 타겟 설정TARGET =.. 2024. 12. 9.
반응형