반응형

전체 글 649

(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

(엑셀) If 함수와 ifs 함수

2024년부터 컴활2급(컴퓨터활용능력2급) 시험에 ifs 함수가 추가되었습니다. 여기서는 if 함수와 ifs 함수를 정리해 봅니다. IF 함수 =if(logical_text, [value_if_true], [value_if_false]) logical_text의 값이 참(true)이면, value_if_true를 나타내고, 거짓(false)이면 value_if_false를 나타냅니다. =IF(A2>=60, "합격", "불합격") if 함수의 중첩 엑셀의 함수는 64개까지 함수를 중첩할 수 있습니다. if 함수 내에 다른 if 함수를 중첩할 수 있습니다. 다음 코드는 점수에 따라 등급은 A,B,C로 나누는 if 함수를 나타낸 것입니다. =IF(A2>=80,"A",IF(A2>=60,"B","C")) ifs ..

마이크로소프트 오피스 엑셀 365 테마 변경하기

엑셀, 파워포인트, 워드, 액세스, ... 등이 포함되된 마이크로스프트 오피스 365의 배경 색상이 어두운 색으로 설정되어 있어서 밝은 색으로 변경해 보겠습니다. 오피스 365의 어두운 테마 ​ Office 테마 변경 아래의 메뉴 위치로 이동합니다. [파일] → 옵션 → 일반 → "Office 테마" ​ Office 테마를 "흰색"으로 설정하고 [확인]을 누릅니다. ​ Office 테마: "흰색"을 선택했을 때의 테마 ​ ​ Office 테마: "시스템 설정 사용"을 선택했을 때의 테마 ​ Office 테마: "검정"을 선택했을 때의 테마 ​

(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

(C언어) 이중 연결리스트( Doubly Linked List): 노드 추가 삭제

이중 연결리스트(Doubly Linked List)를 구현한 C언어 소스입니다. 이중 연결리스트는 각 노드가 다음 노드와 이전 노드를 가리키는 연결된 데이터 구조입니다. 아래의 소스에는 다음과 같은 기능이 구현되어 있습니다. 노드 생성 : createNode() 노드 초기화: initializeList() 노드를 리스트의 끝에 추가: append() 노드를 리스트의 맨 처음에 추가: prepend() 노드 삭제: deleteNode() - 헤드 노드 삭제, 특정 노드 삭제 리스트 출력: printList() 이중 연결리스트의 구조체 정의는 다음과 같이 정의되어 있습니다. // 노드 구조체 정의 struct Node { int data; struct Node* next; struct Node* prev; ..

C_C++ 2023.10.28

(C언어) 자료구조: 연결리스트(linked list)로 표현한 큐(queue)

C 언어로 연결 리스트(linked list)를 활용하여 큐(Queue)를 표현했습니다. 큐는 데이터를 FIFO(First-In-First-Out) 방식으로 처리하는 자료 구조로 먼저 입력된 자료가 먼저 출력되는 자료 구조입니다. 먼저, 연결 리스트의 노드를 정의합니다. 각 노드는 데이터와 다음 노드를 가리키는 포인터로 구성됩니다. // 큐 노드 구조체 정의 typedef struct QueueNode { int data; struct QueueNode* next; } QueueNode; // 큐 구조체 정의 typedef struct Queue { QueueNode* front; // 큐의 맨 앞 노드 QueueNode* rear; // 큐의 맨 뒤 노드 } Queue; void initializeQu..

C_C++ 2023.10.26

(C언어) 자료구조: 배열로 큐(Queue) 표현하기, 장점 단점

큐는 데이터 구조 중 하나로, FIFO(First In First Out) - 데이터를 먼저 집어넣은 순서대로 꺼낼 수 있는 - 자료구조입니다. 이 예제에서는 배열(Array)을 사용하여 큐(queue)를 구현하는 C언어 코드입니다. 테스트를 위해서 큐의 크기를 5로 설정했습니다. #include #include #define MAX_QUEUE_SIZE 5 struct Queue { int items[MAX_QUEUE_SIZE]; int front; int rear; }; struct Queue* createQueue() { struct Queue* queue = (struct Queue*)malloc(sizeof(struct Queue)); queue->front = -1; queue->rear = -..

C_C++ 2023.10.25
반응형