Friday, June 01, 2007
C언어] 한글 글자 수 구하기 함수, 2바이트 문자열 길이, 사이즈; mbslen
영문 문자열과 달리, 한글은 2바이트 문자이기에 _mbslen() 함수를 사용해야 정확한 "한글 글자 개수"를 구할 수 있습니다.
그리고 한글 문자열이 "unsigned char"형으로 정의되어 있어야 합니다. 그냥 char형으로 하면 error C2664: '_mbslen' : cannot convert parameter 1 from 'char [3]' to 'const unsigned char *'. Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast 이런 에러가 발생합니다.
mbstring.h 라는 헤더 파일을 인클루드해 주어야 합니다.
소스 파일명: example.cpp
테스트 문자열을 "똠방각하A"라고 적어 놓고 보니, 무슨 B급 액션영화 제목 같군요.
영문 문자열 길이 (바이트 수) 구하기: ▶▶ C언어] 문자열 길이 구하기 함수, 바이트 단위 글자 개수 얻기; String Size Byte
그리고 한글 문자열이 "unsigned char"형으로 정의되어 있어야 합니다. 그냥 char형으로 하면 error C2664: '_mbslen' : cannot convert parameter 1 from 'char [3]' to 'const unsigned char *'. Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast 이런 에러가 발생합니다.
mbstring.h 라는 헤더 파일을 인클루드해 주어야 합니다.
_mbslen() 함수: 한글 문자열 크기 (글자 개수) 구하기 예제
소스 파일명: example.cpp
#include <stdio.h>
#include <mbstring.h>
int main(void) {
unsigned char h[] = "똠방각하A";
printf("%u\n", _mbslen(h));
// 출력 결과: 5
// (한글 4자 + 영문 알파벳 1자 = 5)
return 0;
}
#include <mbstring.h>
int main(void) {
unsigned char h[] = "똠방각하A";
printf("%u\n", _mbslen(h));
// 출력 결과: 5
// (한글 4자 + 영문 알파벳 1자 = 5)
return 0;
}
테스트 문자열을 "똠방각하A"라고 적어 놓고 보니, 무슨 B급 액션영화 제목 같군요.
영문 문자열 길이 (바이트 수) 구하기: ▶▶ C언어] 문자열 길이 구하기 함수, 바이트 단위 글자 개수 얻기; String Size Byte
tag: cpp
C언어 | C/C++ (Visual C++)
<< Home