안선생의 개발 블로그
C++ 문자열 본문
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