티스토리 뷰
일반 문자열과 유니코드 처리함수 비교 (C++)
일반 문자열 = "ABC"; [0]=A, [1]=B, [2]=C
유니코드 = L"ABC"; [0]=A, [1]=0, [2]=B, [3]=0,[4]=C, [5]=0 //2 바이트 씩
-------------------------------
tchar.h 을 포함 시켜야 한다.
char 형은 TCHAR 로 선언하고 TEXT("문자열")해주면 멀티바이트 프로젝트는 멀티바이트로, 유니코드는 유니코드로 각각 맞춰 자동 변환해주는 매크로 다.
문자열의 길이를 반환하는 함수 strlen() wcslen() _tcslen()
두 문자열을 접합하는 함수 strcat() wcscat() _tcscat()
문자열에서 문자를 찾는 함수 strchr() wcschr() _tcschr()
두 문자열을 비교하는 함수 strcmp() wcscmp() _tcscmp()
문자열을 복사하는 함수 strcpy() wcscpy() _tcscpy()
부분 문자열을 찾는 함수 strstr() wcsstr() _tcsstr()
문자열을 역순으로 저장하는 함수 strrev() _wcsrev() _tcsrev()
SBCS함수 MBCS함수 유니코드함수 자동매크로함수
printf() printf() wprintf() _tprintf() 사용
sprint() sprint() swprintf() _stprintf() 사용 sprintf_s()
_snprint() _snprint() _snwprintf() _sntprintf() 사용
strcpy() _mbscpy() wcscpy() _tcscpy() 사용
strncpy() _mbsncpy() wcsncpy() _tcsncpy() 사용 -----strncpy() 컴파일 에러나면 strrncpy_s() 대체 -> strcpy_s(목적지 문자열, 문자열수, 소스 문자열, 문자열수-1)
strcat() _mbscat() wcscat() _tcscat() 사용
strncat() _mbsncat() wcsncat() _tcsncat() 사용
strcmp() _mbscmp() wcscmp() _tcscmp() 사용
strncmp() _mbsncmp() wcsncmp() _tcsncmp() 사용
fopen() fopen() _wfopen() _tfopen()
strstr() _mbsstr() wcsstr() _tcsstr() 사용
sizeof(szBuffer) sizeof(szBuffer)/sizeof(TCHAR) 사용
atol() _wtol() _ttol() 사
strtok() _mbstok wcstok_s _tcstok_s 사용
1 2 3 4 5 6 7 8 9 10 |
CString str; TCHAR m_pPush; lstrcpy(m_pPush, str); // '\0' 까지 m_pPush 에 복사됨 // 여기서 strncpy()은 컴파일 경고 뜨며, 경고 무시하고 그냥 쓰면 '\0'는 복사 안됨. // strncpy_s()는 컴파일 에러 남.
TCHAR 종목코드[6]; CString str종목코드; strncpy_s(pstctVI->종목코드, str종목코드, sizeof(pstctVI->종목코드)); // 컴파일 경고 안뜬다. |