mbtowc 함수

int mbtowc(wchar_t *pwc,const char *s,size_t n); 멀티 바이트 문자를 와이드 문자로 변환

입력 매개 변수 리스트

pwc 유니코드 문자를 저장할 변수

s 멀티바이트 문자가 있는 위치

n 변환할 바이트 수

반환 값

변환할 수 없을 때 -1, 변환한 멀티바이트 문자 수

사용 예

//C언어 표준 라이브러리 함수 가이드
//int mbtowc(wchar_t *pwc, const char *s, size_t n); 멀티 바이트 문자를 와이드 문자로 변환
//멀티 바이트 문자열을 구성하는 문자를 유니코드로 변환
#include <locale.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main(void)
{
    int  i,j;
    int len;
    int slen;
    char *str = "기억나abc나비야";
    wchar_t warr[100]=L"";
    wchar_t wc;

    setlocale(LC_ALL, "Korean");//로케일 설정
    slen = strlen(str);//문자열 길이 계산
    for (i = 0,j=0; i < slen; i++)
    {
        len = mblen(str + i, MB_CUR_MAX);//유니코드로 변환할 때 차지하는 바이트 수        
        mbtowc(&wc, str + i, len);//유니코드 문자로 변환
        warr[j] = wc;//유니코드 배열에 설정
        if (len == 2)//유니코드로 변환할 때 차지하는 바이트가 2일 때
        {
            i++;//i를 1 더 증가
        }                
        j++;
    }    
    wprintf(L"%s\n",warr);//유니코드 문자열 출력
    return 0;
}

출력

기억나abc나비야