C/C++ 표준 라이브러리: `strtok` 함수를 이용한 문자열 토큰 분리
개요
C 및 C++ 표준 라이브러리에서 제공하는 strtok 함수는 널(null)로 끝나는 문자열을 지정된 구분자(delimiter)를 기준으로 여러 개의 '토큰(token)'으로 분리하는 데 사용됩니다. 이 함수는 주로 C 스타일 문자열(`char*`)을 다룰 때 유용하며, <cstring> (C++에서는 <string.h>) 헤더 파일에 정의되어 있습니다.
함수 시그니처
char* strtok( char* str ...
7월 23일 03:06에 게시됨
C언어: 전역 변수, 정적 지역 변수, 매크로 정의
변수는 일반적으로 함수 내부에 선언되어 함수 실행 중에만 존재하고 종료 후 소멸되는 지역 변수가 대부분입니다.
전역 변수
함수 외부에 선언된 변수를 전역 변수라고 합니다.
전역 변수는 프로그램 전체에서 유효하며, 모든 함수에서 접근하고 사용할 수 있습니다.
초기화되지 않은 전역 변수는 컴파일러에 의해 자동으로 0으로 초기화됩니다. (지역 변수 ...
7월 21일 03:32에 게시됨
C 언어에서 배열과 함수의 활용: 실습 가이드
1. 배열 메모리 구조 이해
다음 코드는 1차원 및 2차원 정수 배열의 메모리 할당 방식을 분석합니다.
#include <stdio.h>
#define N 4
#define M 2
void test1() {
int arr[N] = {1, 9, 8, 4};
int i;
printf("sizeof(arr) = %d\n", sizeof(arr));
for (i = 0; i < N; ++i)
printf("%p: %d\n", &arr[i], arr[i]);
pri ...
7월 20일 19:14에 게시됨
C/C++에서 main 함수의 반환 타입 오류 해결: '::main'은 int를 반환해야 합니다
VSCode에서 C 또는 C++ 프로그램을 실행할 때 다음과 같은 오류가 발생할 수 있습니다:
error: '::main' must return 'int' void main()
이 문제는 주로 void main() 형태로 main 함수를 선언했을 때 발생하며, 특히 C++ 환경이나 최신 컴파일러를 사용하는 경우 자주 나타납니다. 아래 코드 예제를 살펴보겠습니다.
#include <stdio.h>
void main()
{ ...
7월 20일 05:39에 게시됨
C 언어 포인터와 문자열 실습 문제 해설
1. 배열에서 최소값과 최대값 찾기
find_min_max 함수는 입력된 숫자들 중에서 최소값과 최대값을 탐색하는 역할을 수행합니다. pmin은 최소값이 저장된 메모리 주소를 가리키고, pmax는 최대값이 저장된 메모리 주소를 가리킵니다.
2. 최대값 탐색 및 주소 반환
아래 코드는 배열에서 최대값을 찾아 해당 원소의 주소를 반환하는 예제입니다.
#include <stdio.h>
# ...
7월 15일 16:16에 게시됨
Buuctf - findKey
Reverse Engineering을 통해 키를 찾는 방법
LRESULT __stdcallWndProc(HWND hWndParent, UINT Msg, WPARAM wParam, LPARAM lParam)
{
// 각종 변수와 버퍼 선언
HDC hdc;
struct tagPAINTSTRUCT Paint;
CHAR Buffer[100];
struct tagRECT Rect;
// 문자열 로드
LoadStringA(hInstance, 0x6Au, Buffer, 100);
if (Msg > 273) {
if (Msg == 517) { ...
7월 15일 03:36에 게시됨
C 프로그래밍 실습 - 구조체와 포인터 활용
실습 개요
본 실습에서는 C语言的 구조체, 포인터, 연결 리스트 등 핵심 개념을 실습을 통해 학습한다. 각 과제별로 다양한 데이터 구조를 활용하는 방법을 익힌다.
과제 1: 학생 성적 관리 시스템
학생 정보를 구조체로 정의하고, 성적 계산 및 정렬 기능을 구현한다.
#include
#include
#define MAX_STUDENTS 3
typedef struct {
int student_id;
char nam ...
7월 13일 04:24에 게시됨
포인터와 배열을 활용한 C언어 프로그래밍 예제
다음은 C언어에서 포인터와 배열을 사용하는 다양한 예제들입니다.
2차원 배열과 포인터를 이용한 요소 접근 및 출력
#include <stdio.h>
int main() {
int arr[3][4] = {0};
int (*ptr)[4] = arr;
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 4; ++j) {
arr[i][j] = i * 4 + j + 1;
printf("%d ...
7월 11일 03:04에 게시됨
C 언어에서 long 타입 크기의 플랫폼별 차이 분석
C 언어에서 long 타입의 크기는 고정되어 있지 않으며, 시스템 아키텍처(32비트/64비트)와 운영 체제, 그리고 컴파일러가 채택한 데이터 모델에 따라 달라집니다. 특히 64비트 환경에서 Windows와 Linux/macOS 간의 차이가 두드러집니다.
운영체제별 long 크기 비교
시스템 비트운영체제 그룹long 크기비고
32비트Windows, Linux, macOS 등 모든 OS4바이트32비트 ...
7월 11일 02:53에 게시됨
C 언어 환경에서의 파일 데이터 입출력 기법 분석
파일 조작의 기본 접근 방식
C 프로그래밍 환경에서 파일을 읽고 쓰는 작업은 크게 시스템 콜을 사용하는 저수준 API 와 표준 라이브러리 함수를 제공하는 고수준 API 로 나뉩니다. 각 방식마다 사용되는 헤더 파일과 동작 원리가 다르며, 용도에 따라 선택하여 사용해야 합니다.
1. POSIX 시스템 호출 기반 입출력
open(), read(), write(), close() 는 운영체제와 직접 ...
7월 7일 17:08에 게시됨