반응형 분류 전체보기176 [C++ Programming] 문자열 변환 c_str() 함수 결론: c_str() 함수는 주로 C++의 std::string 객체를 C 스타일의 null-terminated 문자열로 변환해야 할 때 사용함. C++의 문자열 라이브러리와 C의 문자열 함수들이 다르게 동작하기 때문인데 c_str()가 주로 사용되는 몇 가지 상황은 아래와 같음. 1. C 라이브러리 함수와의 호환성C++에서는 std::string 객체를 사용하지만, C 라이브러리 함수는 C 스타일 문자열을 요구함예를 들어, printf, strcmp, strcpy 같은 C 표준 라이브러리 함수들을 사용할 때 c_str()를 사용하여 std::string을 C 스타일 문자열로 변환 후 사용해야 되는거 ㅇㅇ#include #include #include int main() { std::string .. 2024. 7. 6. [C++] Vector 공부 Vector는 #include 을 통해 사용 가능 std:: vector 이런식으로 쓸 수 있고using namespace std; 를 써주면 std 생략가능 1. String 형태의 Vector 를 초기에 10칸 "" 비어있는 값으로 초기화 해준 후 0,11,22~99까지의 값을 넣어준 후 iterator 개념을 통해 strcmp를 통해 vector 내부의 값을 찾는 형태임. #include #include #define INIT_SIZE 10using namespace std;int main(){ vector tray_map(INIT_SIZE, ""); for (int i = 0; i c_str(), "66") == 0) { index = distance(tray_map.begin().. 2024. 7. 6. [C++ Programming] Template을 사용한 Doubly Linked List 구현 #include template class Node { public: T data; Node* prev; Node* next; Node(T value) : data(value), prev(nullptr), next(nullptr) {} }; template class DoublyLinkedList { private: Node* head; Node* tail; public: DoublyLinkedList() : head(nullptr), tail(nullptr) {} void insertFront(T value) { Node* newNode = new Node(value); if (!head) { head = tail = newNode; } else { newNode->next = head; head->p.. 2024. 3. 17. [C Programming] Doubly Linked List #include #include #define _CRT_SECURE_NO_WARNINGS #pragma warning(disable:4996) typedef struct NODE { int data; struct NODE* prev; struct NODE* next; }__NODE; __NODE* createNode(int data) { __NODE* newNode = (__NODE*)malloc(sizeof(__NODE)); newNode->data = data; newNode->prev = NULL; newNode->next = NULL; return newNode; } void insertNode(__NODE** head, int data, __NODE** tail) { __NODE* newNode.. 2024. 3. 16. [C Programming] Stack을 사용한 중위연산식->후위연산식 변환 /* 괄호 포함 중위 연산자 입력받아서 후위 연산자로 출력해주는 프로그램 */ #include #include #define STACKSIZE 10 int top = -1; bool isEmpty(void) { return top == -1; } bool isFull(void) { return top == STACKSIZE - 1; } void push(char* stack, char data) { if (!isFull()) { stack[++top] = data; printf("top:%d->data:%d\n", top, stack[top]); } else { printf("Full\n"); } } char pop(char* stack) { if (!isEmpty()) { char temp = stac.. 2024. 3. 15. [C Programming] Cirqular Queue /* 원형큐에서는 포화 상태와 공백 상태 구분을 위해 항상 한칸은 비워둔다. */ #include #include #include #define QSIZE 10 typedef struct{ int rear; int front; }queuepointer; queuepointer qp; bool isEmpty(void) { return qp.front == qp.rear; } bool isFull(void) { return qp.front == (qp.rear + 1) % QSIZE; } void enqueue(int* queue, int data) { if(!isFull()) { queue[qp.rear] = data; printf("Enqueue %d\n",data); printf("%d %d\n", q.. 2024. 3. 14. [C Programming] Stack #include #include #define STACKSIZE 10 int top = -1; bool isEmpty(void) { return top == -1; } bool isFull(void) { return top == STACKSIZE - 1; } void push(int* stack, int data) { if (!isFull()) { stack[++top] = data; printf("top:%d->data:%d\n",top,stack[top]); } else { printf("Full\n"); } } int pop(int* stack) { if (!isEmpty()) { return stack[top--]; } else { printf("Empty\n"); } } int peek(int*.. 2024. 3. 14. [C Network Programming] Parity Code C코드 #include #pragma warning(disable:4996) int main() { char Cnum_1; char Cnum_2; int i, j; int result_1[20]; int result_2[20]; result_1[7] = 0; result_2[7] = 0; int count_a1 = 0, count_a2 = 0, count_b1 = 0, count_b2 = 0; printf("Cnum_1,Cnum_2입력: "); scanf("%c %c",&Cnum_1,&Cnum_2); printf("Cnum_1:%d\nCnum_2:%d\n", Cnum_1, Cnum_2); int num_1 = Cnum_1; int num_2 = Cnum_2; for (i = 0; num_1 > 0; i++) {.. 2024. 3. 13. 이전 1 2 3 4 5 ··· 22 다음 반응형