29. 유니코드와 wcslen

P4·2023년 6월 15일
0
post-thumbnail

멀티바이트

  • 이 방식은 만약 abc한글 이런 문자열을 받으면 가변적으로 앞에는 1바이트, 뒤에는 2바이트로 받음

  • 하지만 이 방식은 이제는 거의 쓰이지 않음

  • 현재는 모든 문자를 2바이트로 표현하는 wide byte system (유니코드)을 사용함

  • wchar_t szWChar[10] = L"abcdef한글"; <-- 이게 와이드 바이트 시스템


wcslen() <-- 문자열 길이 반환 함수

#include <stdio.h>
#include <wchar.h> // 헤더를 가져와야 함

int main(void)
{

	{
		wchar_t szName[10] = L"Raimond";

		int iLen = wcslen(szName);
        // ctrl + shift + space를 누르고 보면 함수가 인자를 const로 받아가는걸 알 수 있음
        // 내가 넘긴 문자열을 수정할 의도가 없다는 뜻으로 이해하면 됨

	}


	return 0;
}
  • 참고로 작성한 문자열은 엄밀히 말하면 코드영역이 아니라 데이터 초기화 영역에 있음, 그냥 ROM 영역안에 있다고 하면 편함

  • 저 함수는 배열 시작 주소를 받아와서 문자가 몇개 있는지 파악하기 때문에 그냥 배열 이름만 넣어주면 됨

profile
지식을 담습니다.

0개의 댓글