Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 와이드 char 및 라이브러리 함수

<시간/>

이 섹션에서는 C++의 와이드 문자가 무엇인지 살펴보겠습니다. 또한 와이드 문자를 처리하는 데 사용되는 몇 가지 기능을 볼 것입니다.

와이드 문자는 문자 데이터 유형과 유사합니다. 가장 큰 차이점은 char는 1바이트 공간을 차지하지만 와이드 문자는 메모리 공간에서 2바이트(컴파일러에 따라 4바이트)를 차지한다는 것입니다. 2바이트 공간 와이드 문자의 경우 64K(65536)개의 다른 문자를 저장할 수 있습니다. 따라서 넓은 문자는 UNICODE 문자를 포함할 수 있습니다. UNICODE 값은 모든 언어의 모든 문자에 대해 가상으로 문자를 포인코딩할 수 있는 국제 표준입니다.

예시

#include<iostream>
using namespace std;
int main() {
   wchar_t wide_character = L'a';
   cout << "The wide character is: " << wide_character << endl;
   cout << "Wide character size: " <<sizeof(wide_character);
}

출력

The wide character is: 97
Wide character size: 2

와이드 문자를 만들려면 문자 리터럴 앞에 'L'을 추가해야 합니다. 그러나 cout을 사용하는 출력에는 문자 값이 표시되지 않습니다. 따라서 전체 char를 사용하려면 wcout를 사용해야 하고 입력을 받으려면 wcin을 사용해야 합니다.

와이드 문자 배열을 만들어 문자열로 인쇄할 수 있습니다.

예시

#include<iostream>
using namespace std;
int main() {
   char str1[] = "This is character array";
   cout << str1 << endl;
   wchar_t str2 [] = L"This is wide character array";
   wcout << str2;
}

출력

This is character array
This is wide character array

이제 와이드 문자에 사용되는 몇 가지 기능을 살펴보겠습니다.

함수 설명
wcslen() 구문은 size_t wcslen(const wchar_t* wcs)입니다. 이 함수는 와이드 문자열의 길이를 가져오는 데 사용됩니다.
wcscat() 구문은 다음과 같습니다. wchar_t *wcscat(wchar_t *strDest, const wchar_t *strSrc); 이 함수는 소스 문자열을 대상 문자열과 연결하는 데 사용됩니다.
wcscpy() 구문은 wchar_t *wcscpy(wchar_t *strDest, const wchar_t *strSrc); 소스 문자열을 대상 문자열로 복사하는 데 도움이 됩니다.
wcsncpy() 구문은 wchar_t* wcsncpy(wchar_t* dest, const wchar_t* src, size_tn); 이 기능은 소스의 처음 n자를 대상으로 복사하는 데 사용됩니다. 최종 OS 소스가 n보다 작으면 대상에 null 문자가 있을 것입니다.
wcscmp() 구문은 int wcscmp(const wchar_t* wcs1, const wchar_t* wcs2); 이 함수는 두 개의 와이드 문자열 wcs1과 wcs2를 비교하는 데 사용됩니다. 일반 문자열 비교를 위한 likestrcmp() 함수입니다.
wcsstr() 구문은 const wchar_t* wcsstr(const wchar_t* wcs1, const wchar_t*wcs2)입니다. 이 함수는 wcs1에서 wcs2의 첫 번째 발생을 찾는 데 사용됩니다. 존재하지 않으면 null을 반환합니다.
wcstok() 구문은 wchar_t* wcstok( wchar_t* str, const wchar_t* delim, wchar_t** ptr); 이 함수는 strtok()과 같습니다. 와이드 문자를 사용하여 생성된 문자열을 토큰화하는 데 도움이 됩니다. 문자열을 토큰화하려면 구분 기호가 필요합니다.