지우너
[뇌를 자극하는 윈도우즈 시스템 프로그래밍] PART 1. 2장 본문
[뇌를 자극하는 윈도우즈 시스템 프로그래밍] PART 1. 2장 아스키코드 vs. 유니코드
MBCS 방식은 영어는 1바이트, 한글은 2바이트로 출력하기 때문에 상당히 효율적이어 보인다.
하지만 아래와 같은 2가지 문제점이 있다.
MBCS의 문제점① "한글"의 실제 길이는 2이지만, 4로 인식되고 있음.
char str[] ="ABC한글";
int size = sizeof(str); // 배열의 크기: 8(ABC=3byte, 한글=4byte, NULL=1byte)
int len = strlen(str); // 문자열 길이: 7 NULL문자를 포함하지 않으므로 3+4=7
MBCS의 문제점② 프로그래밍하기 까다로움
문자열의 길이가 5인 "한글입니다"를 출력하기 위해서는
1byte를 출력하는 fputs 함수를 10번 호출해야 함
char str[] ="한글입니다";
int i;
for(i=0; i<5; ++i){
fputc(str[i], stdout); //"한글"
}
fputc("\n", stdout);
for(i=0; i<10; ++i){
fputc(str[i], stdout); //"한글입니다"
}
fputc("\n", stdout);
문자열 조작함수
- strlen→wcslen
- strcpy→wcscpy
- strncpy→wcsncpy
- strcat→wcscat
- strncat→wcsncat
- strcmp→wcscmp
- strncmp→wcsncmp
문자열 입출력 함수
- printf→wprintf
- scanf→wscanf
- fgets→fgetws
- fputs→fputws
int main(int args, char* argv[]) → int wmain(int args, wchar_t* argv[])
'책' 카테고리의 다른 글
[뇌를 자극하는 TCP/IP 소켓 프로그래밍] 4장 (0) | 2024.11.14 |
---|---|
[뇌를 자극하는 윈도우즈 시스템 프로그래밍] PART 1. 1장 (0) | 2024.10.03 |