반응형

C_C++ 361

(C++) 숫자 맞추기 게임: 클래스 이용

클래스를 이용해서 간단한 숫자 맞추기 게임을 만들었습니다. 컴퓨터터 1부터 100까지의 숫자를 무작위로 생성하고, 이 숫자를 맞추는 프로그램입니다. 이 프로그램은 NumberGuessingGame이라는 클래스를 사용하여 게임을 구현합니다. 무작위로 생성한 숫자를 맞추는 과정은 playGame 메서드에서 처리되고, 사용자로부터 숫자를 입력받는 부분은 getUserGuess 메서드에서 처리됩니다. 사용자가 추측한 숫자를 평가하고 힌트를 주는 부분은 checkGuess 메서드에서 수행됩니다. #include #include #include class NumberGuessingGame { private: int targetNumber; int userGuess; public: NumberGuessingGame(..

C_C++ 2023.12.07

(C++) 클래스 기초: 차량 정보 표현하기

C++ 언어, 클래스를 표현하는 기본 문법으로 차량 정보를 표현했습니다. 차량 정보는 제조업체명, 모델, 생산년도, 주행 거리를 표현합니다. 생성자를 통해 차량을 초기화하고, Getter 및 Setter를 통해 속성을 읽고 쓸 수 있습니다. displayInfo 함수는 차량 정보를 출력하고, drive 함수는 주행 후 주행거리를 업데이트합니다. #include #include using namespace std; class Car { private: string make; // 제조업체 string model; // 모델 int year; // 생산년도 double mileage; // 주행거리 public: // 생성자 Car(string make, string model, int year, doubl..

C_C++ 2023.12.03

(C언어) XOR 비트 연산자를 이용한 암호화 복호화

C언어의 비트 XOR(^) 연산자를 이용해서 간단하게 문자열을 암호화하고 다시 복호화 할 수 있습니다. 이 예에서는 간단한 대칭 키 알고리즘인 기본 XOR 암호화 알고리즘을 사용합니다. 이 예에서 xor_encrypt_decrypt 함수는 제공된 키를 사용하여 메시지의 각 문자에 대해 XOR 암호화 또는 복호화를 수행합니다. XOR 암호화는 대부분의 실제 응용 프로그램에서는 안전하지 않으며, 교육 목적으로만 사용하는 것이 좋습니다. #include #include // Function to perform XOR encryption or decryption void xor_encrypt_decrypt(char* message, char key) { size_t len = strlen(message); fo..

C_C++ 2023.11.27

(C언어) ltrim(), rtrim() 함수 구현: 문자열에서 앞쪽 뒤쪽 공백 제거

문자열에서 앞쪽의 공백과 뒤쪽의 공백을 제거하는 C언어 코드입니다. ltrim(): 앞쪽(왼쪽)의 공백 제거 rtrim(): 뒤쪽(오른쪽)의 공백 제거 #include #include #include void ltrim(char* str) { int start = 0; // 공백 제거 시작 위치 찾기 while (isspace(str[start])) { start++; } // 문자열 복사하여 공백 제거 for (int i = start; i = 0 && isspace(str[end])) { end--; } // 끝에 널 종료 문자 추가하여 문자열의 끝 표시 str[end + 1] = '\0'; } int main() { char myString[] = " Hello, World! "; char mySt..

C_C++ 2023.11.24

(C언어) trim() 함수 구현: 문자열에서 양쪽 공백 제거하기

아래의 코드는 문자열에서 양쪽 공백을 제거하는 trim() 함수를 구현한 것입니다. C언어 코드 #include #include #include void trim(char* str) { int start = 0, end = strlen(str) - 1; // 공백 제거 시작 위치 찾기 while (isspace(str[start])) { start++; } // 공백 제거 끝 위치 찾기 while (end > start && isspace(str[end])) { end--; } // 문자열 복사하여 공백 제거 for (int i = start; i

C_C++ 2023.11.24

(C언어) Caesar (시저, 카이사르) 암호화 복호화

C언어를 이용한 다양한 암호화 방법이 있습니다. 여기서는 일반 텍스트의 각 문자가 고정된 위치만큼 이동되는 간단한 Caesar 암호화 방법을 이용해서 입력 받은 문자열을 암호화하고 다시 복호화 하는 C언어 코드를 설명합니다. shift로 사용되는 변수는 문자열이 이동되는 크기를 나타내는 값으로 임의의 값으로 수정할 수 있습니다. 영문자만 shift 연산을 수행합니다. #define _CRT_SECURE_NO_WARNINGS #include void encrypt(char* text, int shift) { for (int i = 0; text[i] != '\0'; ++i) { if (text[i] >= 'a' && text[i] = 'A' && text[i] = 'a' && text[i] = 'A' &&..

C_C++ 2023.11.19

(C언어) 이진 탐색 트리(BTS, Binary Search Tree)에서 노드의 삽입 삭제 검색

C언어를 이용해서 이진 탐색 트리(BTS, Binary Search Tree)를 구현한 코드입니다. 노드의 생성, 삽입, 삭제 그리고 중위 순회로 탐색하는 코드를 포함하고 있습니다. 이진 트리의 노드를 나타내는 구조체입니다. struct Node { int data; struct Node* left; struct Node* right; }; 노드를 생성하는 함수입니다. struct Node* createNode(int data) { struct Node* newNode = (struct Node*)malloc(sizeof(struct Node)); newNode->data = data; newNode->left = NULL; newNode->right = NULL; return newNode; } 노드의..

C_C++ 2023.11.08

(C언어) 연결 리스트(linked list)를 이용한 스택(stack) 구현하기

C 언어에서 연결 리스트를 이용해서 스택을 표현해 봅니다. 스택은 후입선출(LIFO) 데이터 구조로 마지막에 입력된 자료가 가장 먼저 제거되는 자료구입니다. 여기서는 스택에 요소를 삽입(push)하고 제거(pop)하는 기능이 포함되어 있습니다. 연결 리스트를 사용하면 스택의 크기가 동적으로 변경될 수 있습니다. 먼저, 스택의 각 노드를 나타내는 구조체를 정의합니다. #include #include // 스택의 노드를 나타내는 구조체 struct Node { int data; struct Node* next; }; 다음으로, 스택을 나타내는 구조체를 정의합니다. struct Stack { struct Node* top; }; 스택의 요소를 생성하는 함수를 정의합니다. struct Stack* createS..

C_C++ 2023.11.04

(C언어) 연결 리스트로 이진 트리 구현

C 언어를 이용하여 트리(Tree)를 구현하는 방법은 여러 가지가 있습니다. 트리 구조는 많은 종류가 있으며, 여기서는 이진 트리(Binary Tree)를 구현하는 예제입니다. 이진 트리는 각 노드가 최대 두 개의 자식 노드를 가지는 트리입니다. 먼저, 이진 트리의 간단한 구조를 정의해 보겠습니다. 각 노드는 데이터와 두 개의 포인터(왼쪽 자식 노드 및 오른쪽 자식 노드를 가리키는 포인터)로 구성됩니다. 아래는 이진 트리의 구조를 정의한 C 코드입니다. #include #include // 이진 트리 노드 구조체 정의 struct TreeNode { int data; struct TreeNode* left; struct TreeNode* right; }; // 새로운 노드를 생성하는 함수 struct T..

C_C++ 2023.11.01
반응형