본문 바로가기

C++87

C++ 기초 : 구조체 포인터 구조체 포인터에 대해 알아보기 전에먼저 구조체부터 짧게 알아보죠.  아래 코드를 보면 구조체가 있습니다.  형태는 int형 멤버 a와 float형 멤버 f가 있습니다.자료형은 MYST입니다. 이 구조체를 통해 MYST형 변수 s와 MYST형 변수 s2를 선언하였습니다.  여기서 주의할 점은 멤버 a와 f는 변수가 아닌 멤버라는 점입니다. 위 그림처럼MYST는 자료형이고 변수는 s와 s2입니다.이 s와 s2 각각에 속해 있는 a와 f는 멤버이죠.즉 MYST는 자료형 변수 s에 int형 멤버 a와 float형 멤버 f가 있고,MYST는 자료형 변수 s2에 int형 또 다른 멤버 a와 float형 멤버 f가 있는 겁니다.       코드를 통해 구조.. 2024. 4. 4.
C++ 기초 : wcscmp 함수 wcscmp 함수는 두 개의 문자열을 비교합니다.그리고 같으면 0, 왼쪽이 우열이 높으면 -1, 오른쪽이 우열이 높으면 1을 반환합니다. 여기서 우열이 높다라는 것은 사전순으로 따져보았을 때먼저 오는 것이라는 의미이죠.  아래 코드를 보시죠. 문자열 "abc" 두 개를 비교하였을 때 0을 반환합니다. 문자열 "abc"와 "bbc"를 비교하였더니 -1을 반환하네요.사전순으로 보았을 때 a가 더 먼저이므로 왼쪽 문자열이 우열이 높다고판단하였고 -1을 반환하는 모습입니다. 문자열 "bbc"와 "abc"를 비교하였더니 1을 반환하네요.사전순으로 보았을 때 a가 더 먼저이므로 오른쪽 문자열이 우열이 높다고판단하였고 1을 반환하는 모습입니다.  그럼 길이가 다른 경우는 어떨.. 2024. 4. 4.
C++ 기초 : 문자열 (4) 이번에는 문자열을 이어 붙이는 함수를 다루어 보겠습니다. 해당 기능을 하는 함수 wcscat_s입니다. 세 개의 인자를 받습니다. 첫 번째는 인자는 목적지, 즉 이어 붙여질 문자열이죠. const가 붙지 않는 이유는문자열이 수정되어야 하기 때문이겠죠? 두 번째 인자는 크기입니다. 이어 붙여질 문자열은 배열 형식일테고,이 배열의 크기가 얼마나 있는지 알려주는 것입니다.대입할 문자열이 너무 길어, 이어 붙여질 문자열이 들어가 있는배열의 크기를 넘으면 오류를 표시할 것을 예상해 볼 수 있습니다.  세 번째 인자는 소스, 즉 대입할 문자열입니다. const가 붙는 이유는대입할 문자열은 수정될 필요가 없기 때문이죠.  그럼 wcscat_s 함수를 이용해서 문자열을 이어 보겠습니.. 2024. 4. 3.
C++ 기초 : 문자열 (3) 문자열의 길이를 반환해 주는 함수로는 'wcslen'가 있습니다. 이것을 직접 구현해 볼까요? 아래 코드를 보시죠. 기본으로 제공되는 함수 wcslen과 같은 기능을 하는함수 GetLength를 만들었습니다. 반환 타입을 unsigned int로 설정했습니다. 이유는 문자열의 길이를 반환하는 함수이므로 음수가 나오면 안되기 때문이죠. 함수 GetLength는 const wchar_t형 포인터 변수를 요구합니다.문자열의 내용을 확인하기 위해 포인터 변수를 통해 문자열의 주솟값을 저장하고,문자열의 값을 수정하지 않는다는 것을 의미하기 위해서 const를 붙였습니다. 그리고 int형 변수 i를 선언하였습니다. i는 문자가 있다는 것이 확인될 때마다1씩 증가하며 함수가 종료되면.. 2024. 4. 3.
C++ 기초 : 문자열 (2) char c = 'a'; 위와 같은 코드가 있습니다.char형이기 때문에 1Byte로 소문자 a를 표현합니다. 그럼 char형은 무조건 1Byte만 표현할 수 있냐고 하면 그건 아닙니다.Multi Byte Character Set(멀티 바이트 캐릭터 셋) 방식이므로가변 길이로 작동하죠.  아래 코드를 보시면 a, b, c는 1Byte로 표현할 수 있으므로 한 칸씩 차지하고 있지만한과 글이라는 문자는 2Byte로 표현해야 하기 때문에두 칸씩 차지하고 있습니다. (한은 [3] ~ [4], 글은 [5] ~ [6])  보기 편하게 음수가 아닌 양수로 표현하면 위와 같은 값이 배열에 담긴 것을 확인할 수 있습니다. 근데 이러한 Multi Byte Character Set.. 2024. 4. 3.
C++ 기초 : 문자열 (1) 1Byte로 표현할 수 있는 양수는 0 포함, 255까지이기 때문에1Byte로 충분합니다. 그래서 문자를 표현하는 자료형 char는 1Byte이죠.  그러나 이는 영어만 사용할 때 기준이고,당장 한글만 표현하려고 해도 '가', '달', '꿼' 등 경우의 수가 엄청 많습니다. 이를 위해 다른 체계가 필요했고 그때 사용하는 자료형이2Byte 정수로, 문자를 표현하는 자료형 'wchar_t'입니다. 2Byte면 16Bit이고, 이는 2의 16제곱이므로 0 ~ 65,535의 수를 표현할 수 있습니다. 한글을 표현하는데 충분하겠죠.  아래 코드를 보시면 wchar_t를 사용한 모습을 볼 수 있습니다. 대입할 문자 앞에 대문자 L을 붙여, 해당 문자를2Byte 공간에 넣을 것을.. 2024. 4. 2.