C 프로그래밍 기초 실험: 제어문 활용

무작위 쿠폰 코드 생성기 #include <stdio.h> #include <stdlib.h> #include <time.h> #define CODE_LENGTH 6 #define NUM_CODES 5 int main(){ int count; int random_prefix, random_suffix; srand(time(NULL)); count = 0; while(count < NUM_CODES){ random_prefix = rand() % 900 + 100; // 100-999 ...

7월 9일 02:55에 게시됨

C 언어 타입 캐스팅과 상수(Const) 심화 이해

C 언어의 데이터 형변환 (Type Casting) 프로그램을 작성하다 보면 특정 데이터 타입을 다른 타입으로 변환해야 하는 상황이 발생합니다. 이를 형변환(Type Casting)이라고 하며, 크게 컴파일러가 자동으로 처리하는 방식과 개발자가 직접 지정하는 방식으로 나뉩니다. 암시적 형변환 (Implicit Casting) 서로 다른 데이터 타입 간에 할당이 이루어질 때, 컴파일러가 자동 ...

7월 3일 01:21에 게시됨

C 언어 기본 개념: 전처리 지시자와 함수 구조

전처리 지시자 C 소스 코드에서 #include <stdio.h>와 같은 헤더 파일 포함문은 전처리 지시자입니다. 컴파일러는 소스 코드를 컴파일하기 전에 이러한 지시자를 먼저 처리합니다. stdio.h 헤더는 표준 입출력 함수에 대한 정보를 제공하며, 실제 함수 구현은 라이브러리 파일에 존재합니다. 헤더 파일은 함수 프로토타입, 상수 정의, 매크로 등을 포함하여 컴파일러 ...

7월 2일 04:28에 게시됨

배열 및 문자열 처리 실습

실습 1: 배열에서 최솟값과 최댓값 찾기 다음은 주어진 배열에서 최솟값과 최댓값을 찾는 코드입니다. 코드 보기 #include <stdio.h> #define SIZE 5 void getData(int arr[], int size); void displayData(int arr[], int size); void findMinMax(int arr[], int size, int *min, int *max); int main() { int data[SIZE]; int minValue, maxValue; ...

7월 2일 02:06에 게시됨

순환 연결리스트를 이용한 원숭이 왕 선정 알고리즘

문제: head가 헤더 노드가 없는 순환 연결리스트를 가리키고 있을 때, 각 노드에는 데이터 필드(num)와 포인터 필드(link)가 포함됩니다. 데이터 필드에는 정수가 저장되며, i번째 노드의 데이터 필드 값은 i입니다. 함수를 작성하여 순환 연결리스트를 사용하여 원숭이 왕을 선택하는 과정을 시뮬레이션하세요: 첫 번째 노드부터 시작하여 "카운트"를 반복하고, ...

6월 29일 01:47에 게시됨

C 언어 양방향 연결 리스트(Doubly Linked List) 구현 및 구조 분석

1. 기초 데이터 타입 및 상태 코드 정의 연산의 성공, 실패, 메모리 할당 오류 등의 상태를 명확하게 처리하기 위해 열거형(enum)을 활용한 상태 코드를 정의합니다. 또한, 노드에 저장될 데이터의 타입을 별도로 지정하여 추후 확장성을 높입니다. #ifndef COMMON_DEFS_H #define COMMON_DEFS_H #include <stdio.h> #include <stdlib.h> typedef enum { ...

6월 25일 19:04에 게시됨

C 언어 문자열 및 메모리 조작 함수 직접 구현

1. 문자열 길이 계산 (my_strlen) 널 종료 문자('\0')를 제외한 문자열의 유효 길이 반환 #include <assert.h> size_t my_strlen(const char* str_ptr) { assert(str_ptr); const char* ptr = str_ptr; while (*ptr) ptr++; return ptr - str_ptr; } 2. 문자열 복사 (my_strcpy) 소스 문자열 전체를 대상 버퍼에 복사(널 문자 포함) char* my_strc ...

6월 24일 22:54에 게시됨

C 언어 - 정수와 부동소수점 수의 메모리 저장 방식 (도해 설명)

서론: 정수의 이진 표현 방식에는 세 가지가 있습니다: 원코드(원형), 역코드(반전), 보수코드(보수). 부호 있는 정수의 세 가지 표현 방식 모두 부호 비트와 값 비트 두 부분으로 구성됩니다. 2진수 시퀀스에서 최상위 1비트는 부호 비트로 사용되며, 나머지는 모두 값 비트입니다. 부호 비트는 양수를 "0"으로, 음수를 "1"로 표현합니다. 원코드: ...

6월 24일 02:23에 게시됨

PHP 확장 개발 완벽 가이드: 초보부터 PECL 배포까지

PHP 확장 개발 핵심 PHP 확장은 C 언어로 작성된 동적 라이브러리로, PHP 코어에 직접 통합되어 고성능 기능을 제공합니다. 시스템 API 호출, 성능 최적화, 전용 기능 구현이 가능하며 PHP 애플리케이션의 성능을 극대화합니다. 개발 환경 구성 PHP 소스 코드를 클론하고 빌드 환경을 설정합니다: git clone https://github.com/php/php-src cd php-src ./buildconf ./con ...

6월 23일 03:41에 게시됨

실전 C 언어: 단일 연결 리스트 생성 및 검색 기법

헤드 삽입을 통한 리스트 생성 머리에서부터 데이터를 입력받아 새로운 노드를 앞쪽에 추가하는 방식이다. 이 방법은 입력 순서와 출력 순서가 반대가 된다. #include <stdio.h> #include <stdlib.h> typedef int DataType; typedef struct ListNode { DataType value; struct ListNode *next; } ListNode, *List; void create_head_insert(List & ...

6월 12일 18:35에 게시됨