C++(57)
-
[C++] wchar_t 배열 함수 - wcslen(), wcscat_s(), wcscmp(), wcscpy_s()
아래 링크 클릭 시 해당 본문으로 이동wcslen()wcscat_s()wcscmp()wcscpy_s()해당 본문 내용은 문자열 함수 본문과는 char와 wchar_t 차이지, 대부분의 내용은 거의 비슷하다.겹치는 내용은 최대한 제외했다.참고 링크• 문자열 함수wcslen(), wcscat_s(), wcscmp(), wcscpy_s()헤더 파일// wcslen(), wcscat(), wcscmp()를 사용하려면 아래 헤더 파일을 불러와야 한다.#include wcslen()• 문자열의 길이를 반환하는 함수▶ 함수 원형size_t wcslen(const wchar_t* _String);// 와이드 문자열의 시작 주소를 가리킨다.▷ 예시#include int main(){ wchar_t cName[10] =..
2024.03.27 -
[C++] 문자열 함수 - strlen(), strcat_s(), strcmp(), strcpy_s()
아래 링크 클릭 시 해당 본문으로 이동strlen()strcat_s()strcmp()strcpy_s()`strcat()`, `strcpy()`는 버퍼 오버플로우를 일으킬 가능성이 있어, 안전하지 않은 함수로 간주되어 오류가 발생한다.그래서 좀 더 안전한 함수인 각각 `strcat_s()`, `strcpy_s()`를 사용하기를 권장한다.strlen(), strcat_s(), strcmp(), strcpy_s()헤더 파일// strlen(), strcat_s(), strcmp(), strcpy_s()를 사용하려면 아래 헤더 파일을 불러와야 한다.#include // C 방식#include // C++ 방식 strlen()• 문자열의 길이를 반환하는 함수▶ 함수 원형함수 원형(Function Protot..
2024.03.27 -
[C++] 문자열
아래 링크 클릭 시 해당 본문으로 이동문자열배열 vs. const 포인터문자열 수정하는 법문자열• 문자열 = 주소값문자열은 주소값을 반환하므로 포인터로 주소에 접근한 곳에 문자열이 존재한다.• 문자열 리터럴은 작성한 코드 그 자체이고, 컴파일러에 의해 읽기 전용 메모리(ROM, Read Only Memory)에 저장된다.• 문자열 리터럴은 불변(Immutable)인데, 이는 프로그램 안전성을 높이고, 동일한 리터럴을 재사용하여 컴파일러가 메모리 사용을 최적화할 수 있도록 한다.• 문자열 리터럴은 프로그램 실행 도중에 실시간으로 데이터에 접근해서 수정할 수 없게 보호되고 있다.• 문자열 리터럴(string literal)큰따옴표(`""`)로 묶인 문자 시퀀스, 또는 와이드 문자의 경우 `L` 접두사가 붙고..
2024.03.26 -
[C++] 스트림(stream), 버퍼(buffer)
스트림과 버퍼는 입출력(I/O)과 관련이 있다.C++ 프로그램은 파일이나 콘솔의 입출력을 직접 다루지 않고 스트림(stream)이라는 흐름을 통해 다룬다.스트림(stream)• 입출력을 처리하는 데 사용되며, 바이트(byte) 단위의 데이터 흐름을 의미한다.• 입력 스트림(`std::cin`)과 출력 스트림(`std::cout`)을 제공한다.• 운영체제에 의해 생성되는 가상의 연결 고리를 의미하며, 중간 매개자 역할을 한다.• 스트림은 내부에 버퍼라는 임시 메모리 공간을 가지고 있다.장점• 다양한 데이터 소스(파일, 콘솔 등)에서 읽고 쓰는 작업을 단순화한다.• `std::cin`, `std::cout`처럼 이해하기 쉬운 인터페이스를 제공한다.단점• 데이터가 작으면 스트림이 직접 I/O하는 것보다 느릴 ..
2024.03.26 -
[C++] 주석(Comment), 세미콜론(;)
아래 링크 클릭 시 해당 본문으로 이동주석(Comment)세미클론주석(Comment)• 코드에 대한 설명을 추가적으로 적고 싶을 때 사용한다. ex) 법적인 내용, 코드에 대한 중요한 정보, 코드의 역할 및 의미 등주석 종류 한 줄 / 여러 줄설명// 한 줄• 같은 줄에 있는 문자열을 주석 처리한다./* */ 여러 줄• /*와 */ 사이에 있는 문자열을 주석 처리한다.// \ 여러 줄• 한 줄 주석(//) 뒤에 \를 쓰면 그 다음 줄도 주석 처리된다.• '\'를 쓰지 않으면 다음 줄은 주석처리 되지 않는다.#if 0#endif여러 줄• 전처리기를 이용한 주석 기능이다.• #if 0과 #end if 사이에 들어가는 문자열은 전부 주석 처리된다.• if 0 → if 1 : 주석 처리가 해제된다. ▷ 예시/..
2024.03.25 -
[C++] 문자
아래 링크 클릭 시 해당 본문으로 이동문자char, char*, char[]wchar_tchar8_tchar16_tchar32_t표현 방식이 정수형인 문자형자료형크기 (byte)char1wchar_t2char8_t1char16_t2char32_t4• 문자에 해당하는 값을 저장하는 정수형이다.• ASCII에 속하지 않는 문자(한글, 중국어, 이모지 등)는 `wchar_t`, `char16_t`, `char32_t`와 같은 문자형을 사용하며, UTF-16 또는 UTF-32와 같은 인코딩을 활용한다.• C++에서는 유니코드 문자 처리를 위해 `char8_t`, `char16_t`, `char32_t`가 도입되었다.이는 유니코드 인코딩에 최적화되어 있다.더보기VS 프로젝트 기본 속성은 유니코드이다.(솔루션 탐색..
2024.03.24 -
[C++] 상속(Inheritance)
상속(Inheritance)• 무조건 부모 클래스의 생성자가 먼저 호출된다.CChild() : CParent() // 생략되어있다. , m_f(0.f){ m_i = 0;. cout `CChild` 클래스의 생성자에 `CParent()`가 생략되어 있다.무조건 부모 클래스의 생성자가 먼저 호출되기 때문에 `CParent()`를 생략하든, `m_f(0.f)`와 순서를 바꾸든 상관없이 `CParent()` 쪽이 먼저 초기화된다.▷ 예시#include using std::cout;using std::endl;void FuncA(){ cout ▽ 출력 결과Function AFunction B상속에서 생성자의 동작 방식• 자식 또는 부모 클래스는 상속 관계에서 다른 클래스의 멤버를 초기화할 ..
2024.03.24 -
[C++] 트리(Tree), set과 map
아래 링크 클릭 시 해당 본문으로 이동트리(Tree)이진 트리완전 이진 트리(Complete Binary Tree)이진 탐색 트리(Binary Search Tree, BST)트리 순회 (Tree Traversal)중위 후속자중위 선행자set과 mapsetmapmake_pair()과 find()그래프• 리스트에서 노드를 그래프에서는 vertex(정점)라고 한다.ex) 지하철 노선도트리(Tree)• 그래프의 일종으로, 순회가 불가능한 그래프이다.• 순회(curcit) : 처음 시작 노드부터 다시 자기 자리로 돌아오는 것• 계층 관계를 표현할 때 사용한다. ex) 가족 관계도, 조직도• 부모 노드와 자식 노드를 연결한다. ex) 윈도우의 폴더 구조트리 용어 정리• 이진 트리 : 자식의 개수가 2개 이하인 ..
2024.03.22