안선생의 개발 블로그

C++ 문자열 본문

C++

C++ 문자열

안선생 2022. 6. 9. 14:43

char형은 1byte형이므로 표현할 수 있는 숫자가 127개 마꺠 없다. 아스키코드를 보면 실제로 127개까지 마깨 없다.

그러면 한글같은거는 char형으로는 표현 할 수 가 없다. 그래서 2바이트인 wchar형을 써준다.

 

wchar_t wc = L'a';; // 앞에 L을 붙여 2바이트를 쓴다는것을 알려준다.

배열 사용법

wchar_t wc[10] = L"abcdefghi"; // 마찬가지로 앞에 L을 붙여줌

 a b c d e f g h i 0

  2바이트로 10개 만들었다. 문자는 9개지만 9개 선언하면 에러가 난다.  왜냐하면 끝에 0이 끝난다고 알려주므로  9개 선언하면 에러가 남 0까지 포함하니 잘 생각하자.

 

const wchar_t* pchar = L"abcdefg"; // 문자도 포인터로 사용할 수 있다. 즉 문자도 주소값을 가지고 있다. 

 

첫번 째 배열 사용법은 배열을 주소로 옮긴것이다.

포인터 배열 사용은 배열을 문자열에 시작주소를 가리키는 것이다.

즉 일반 배열은 우리가 작성한 배열을 주소(읽기 전용 메모리)로 복사해서 옮겨서 옮긴 곳에서 사용하지만 포인터로 선언한 배열은 옮기지 않고 코드(ROM 메모리)에 있는 주소를 다이렉트로 가리키는 것이기 때문에 수정할 수 가 없다. 그래서 앞에 const쓰는 이유는 이러한 이유이다.

10 = 11 은 변경할 수 없다. 코드는 변경할 수 없기 떄문 그래서 값을 넣어주는 변수를 선언하는 것 이 비슷한 이유가 

포인터이다 코드에 있는 abcdef를 변경할려고 하면 에러가 뜨는게 비슷하다고 생각하면 됨

 

문자열의 길이를 알아보기

문자열의 길이를 알아보는 함수

wcslen()

헤더파일을 참고한다.

배열의 이름은 시작 주소이기 때문에 변수명을 넣어주면 된다.

 

wcslen()함수 직접 만들기

 

간단하게 줄이기

 

 

함수의 오버로딩

오버로딩 : 같은 함수를 여러개 만듬 

위와 같이 함수가 같지만 맞는 값으로 컴파일러가 알아서 읽어옴

 

문자열 이어 붙이는 함수

wcsat_s

함수 직접 구현해보기

 

 

 

 

출처 : https://www.youtube.com/c/AssortRockGameAcademy

 

'C++' 카테고리의 다른 글

C++ 가변배열  (0) 2022.07.20
C++ 동적할당  (0) 2022.07.14
C++ 문자  (0) 2022.06.07
C++ void  (0) 2022.06.06
C++ 상수(const)  (0) 2022.06.05