libhangul  Version 0.1.0
타입정의 | 함수
한글 글자 조작

타입정의

typedef uint32_t ucschar
 UCS4 코드 단위의 글자 코드 값 더 자세히 ...
 

함수

bool hangul_is_choseong (ucschar c)
 초성인지 확인하는 함수 더 자세히 ...
 
bool hangul_is_jungseong (ucschar c)
 중성인지 확인하는 함수 더 자세히 ...
 
bool hangul_is_jongseong (ucschar c)
 종성인지 확인하는 함수 더 자세히 ...
 
bool hangul_is_choseong_conjoinable (ucschar c)
 초성이고 조합 가능한지 확인
 
bool hangul_is_jungseong_conjoinable (ucschar c)
 중성이고 조합 가능한지 확인
 
bool hangul_is_jongseong_conjoinable (ucschar c)
 종성이고 조합 가능한지 확인
 
bool hangul_is_jamo_conjoinable (ucschar c)
 자모가 조합 가능한지 확인
 
bool hangul_is_syllable (ucschar c)
 한글 음절 인지 확 더 자세히 ...
 
bool hangul_is_jamo (ucschar c)
 자모 인지 확인 더 자세히 ...
 
bool hangul_is_cjamo (ucschar c)
 호환 자모인지 확인 더 자세히 ...
 
ucschar hangul_jamo_to_cjamo (ucschar c)
 자모 코드를 대응하는 호환 자모로 변환 더 자세히 ...
 
ucschar hangul_jamo_to_syllable (ucschar choseong, ucschar jungseong, ucschar jongseong)
 자모 코드를 조합하여 한글 음절로 변환 더 자세히 ...
 
void hangul_syllable_to_jamo (ucschar syllable, ucschar *choseong, ucschar *jungseong, ucschar *jongseong)
 음절을 자모로 분해 더 자세히 ...
 
int hangul_syllable_len (const ucschar *str, int max_len)
 한 음절에 해당하는 코드의 갯수를 구하는 함수 더 자세히 ...
 
const ucscharhangul_syllable_iterator_prev (const ucschar *iter, const ucschar *begin)
 iter를 기준으로 이전 음절의 첫자모 글자에 대한 포인터를 구하는 함수 더 자세히 ...
 
const ucscharhangul_syllable_iterator_next (const ucschar *iter, const ucschar *end)
 iter를 기준으로 다음 음절의 첫자모 글자에 대한 포인터를 구하는 함수 더 자세히 ...
 
int hangul_jamos_to_syllables (ucschar *dest, int destlen, const ucschar *src, int srclen)
 자모 스트링을 음절 스트링으로 변환 더 자세히 ...
 

상세한 설명

한글 글자 조작

libhangul은 한글 각 글자를 구분하고 조작하는데 사용할 수 있는 몇가지 함수를 제공한다. libhangul의 글자 구분 함수의 인터페이스에서 글자의 기본 단위는 UCS4 코드값이다.

타입정의 문서화

◆ ucschar

UCS4 코드 단위의 글자 코드 값

UCS4 코드 값을 저장한다. libhangul에서 사용하는 문자열의 기본단위이다. preedit 문자열과 commit 문자열 모두 ucschar 포인터 형으로 전달된다. 이 스트링은 C 스트링과 유사하게 0으로 끝난다. 유니코드 값이 한글의 어떤 범주에 속하는지 확인하는 함수도 모두 ucschar 형을 사용한다.

함수 문서화

◆ hangul_is_choseong()

bool hangul_is_choseong ( ucschar  c)

초성인지 확인하는 함수

매개변수
cUCS4 코드 값
반환값
c 가 초성에 해당하면 true를 리턴함, 아니면 false

c 로 주어진 UCS4 코드가 초성인지 확인한다. Unicode 5.2 지원

다음에 의해서 참조됨 : hangul_is_jamo().

◆ hangul_is_cjamo()

bool hangul_is_cjamo ( ucschar  c)

호환 자모인지 확인

매개변수
cUCS4 코드 값
반환값
c가 호환자모이면 true, 그 외에는 false

이 함수는 c로 주어진 UCS4 코드가 호환 자모인지 확인한다.

◆ hangul_is_jamo()

bool hangul_is_jamo ( ucschar  c)

자모 인지 확인

매개변수
cUCS4 코드 값
반환값
c 가 자모 코드이면 true를 리턴, 그외에는 false

c 로 주어진 UCS4 코드가 자모 코드인지 확인한다. Unicode 5.2 지원

다음을 참조함 : hangul_is_choseong(), hangul_is_jongseong(), hangul_is_jungseong().

◆ hangul_is_jongseong()

bool hangul_is_jongseong ( ucschar  c)

종성인지 확인하는 함수

매개변수
cUCS4 코드 값
반환값
c 가 종성에 해당하면 true를 리턴함, 아니면 false

c 로 주어진 UCS4 코드가 종성인지 확인한다. Unicode 5.2 지원

다음에 의해서 참조됨 : hangul_is_jamo().

◆ hangul_is_jungseong()

bool hangul_is_jungseong ( ucschar  c)

중성인지 확인하는 함수

매개변수
cUCS4 코드 값
반환값
c 가 중성에 해당하면 true를 리턴함, 아니면 false

c 로 주어진 UCS4 코드가 중성인지 확인한다. Unicode 5.2 지원

다음에 의해서 참조됨 : hangul_is_jamo().

◆ hangul_is_syllable()

bool hangul_is_syllable ( ucschar  c)

한글 음절 인지 확

매개변수
cUCS4 코드 값
반환값
c가 한글 음절 코드이면 true, 그 외에는 false

이 함수는 c로 주어진 UCS4 코드가 현대 한글 음절에 해당하는지 확인한다.

다음에 의해서 참조됨 : hangul_syllable_to_jamo().

◆ hangul_jamo_to_cjamo()

ucschar hangul_jamo_to_cjamo ( ucschar  c)

자모 코드를 대응하는 호환 자모로 변환

매개변수
c변환할 UCS4 코드 값
반환값
c 에 대응되는 호환 자모 값, or c

이 함수는 c 로 주어진 자모 코드와 같은 형태를 가진 호환 자모 값을 리턴한다. 자모와 같은 형태를 가진 호환 자모가 없는 경우에는 c 의 값을 그대로 리턴한다.

◆ hangul_jamo_to_syllable()

ucschar hangul_jamo_to_syllable ( ucschar  choseong,
ucschar  jungseong,
ucschar  jongseong 
)

자모 코드를 조합하여 한글 음절로 변환

매개변수
choseong초성이 될 UCS4 코드 값
jungseong중성이 될 UCS4 코드 값
jongseong종성이 될 UCS4 코드 값
반환값
choseong jungseong jongseong을 조합한 현대 한글 음절 코드, 또는 0

이 함수는 choseong jungseong jongseong으로 주어진 코드 값을 각각 초성, 중성, 종성으로 하는 현대 한글 음절 코드를 구한다. choseong jungseong jongseong 이 조합 가능한 코드가 아니라면 0을 리턴한다. 종성이 없는 글자를 만들기 위해서는 jongseong에 0을 주면 된다.

다음을 참조함 : hangul_is_choseong_conjoinable(), hangul_is_jongseong_conjoinable(), hangul_is_jungseong_conjoinable().

◆ hangul_jamos_to_syllables()

int hangul_jamos_to_syllables ( ucschar dest,
int  destlen,
const ucschar src,
int  srclen 
)

자모 스트링을 음절 스트링으로 변환

매개변수
dest음절형으로 변환된 결과가 저장될 버퍼
destlen결과를 저장할 버퍼의 길이(ucschar 코드 단위)
src변환할 자모 스트링
srclen변환할 자모 스트링의 길이(ucschar 코드 단위)
반환값
destlen 에 저장한 코드의 갯수

이 함수는 L+V+T*M? 패턴에 따라 자모 스트링 변환을 시도한다. 한 음절을 판단하는 기준은 hangul_syllable_len 을 참조한다. 만일 src 가 적절한 음절형태로 변환이 불가능한 경우에는 자모 스트링이 그대로 복사된다.

이 함수는 자모 스트링 src 를 음절형으로 변환하여 dest 에 저장한다. srclen 에 지정된 갯수만큼 읽고, destlen 에 지정된 길이 이상 쓰지 않는다. srclen 이 -1이라면 src 는 0으로 끝나는 스트링으로 가정하고 0을 제외한 길이까지 변환을 시도한다. 따라서 변환된 결과 스트링은 0으로 끝나지 않는다. 만일 0으로 끝나는 스트링을 만들고 싶다면 다음과 같이 한다.

int n = hangul_jamos_to_syllables(dest, destlen, src, srclen);
dest[n] = 0;

다음을 참조함 : hangul_syllable_len().

◆ hangul_syllable_iterator_next()

const ucschar* hangul_syllable_iterator_next ( const ucschar iter,
const ucschar end 
)

iter를 기준으로 다음 음절의 첫자모 글자에 대한 포인터를 구하는 함수

매개변수
iter현재 위치
end스트링의 끝위치, 포인터가 이동할 한계값
반환값
다음 음절의 첫번째 자모에 대한 포인터

이 함수는 iter로 주어진 자모 스트링의 포인터를 기준으로 다음 음절의 첫번째 자모에 대한 포인터를 리턴한다. 음절을 찾기위해서 end를 넘어 이동하지 않는다.

한 음절이라고 판단하는 기준은 L*V*T+M? 패턴에 따른다.

◆ hangul_syllable_iterator_prev()

const ucschar* hangul_syllable_iterator_prev ( const ucschar iter,
const ucschar begin 
)

iter를 기준으로 이전 음절의 첫자모 글자에 대한 포인터를 구하는 함수

매개변수
iter현재 위치
begin스트링의 시작위치, 포인터가 이동할 한계값
반환값
이전 음절의 첫번째 자모에 대한 포인터

이 함수는 iter로 주어진 자모 스트링의 포인터를 기준으로 이전 음절의 첫번째 자모에 대한 포인터를 리턴한다. 음절을 찾기위해서 begin보다 앞쪽으로 이동하지 않는다.

한 음절이라고 판단하는 기준은 L*V*T+M? 패턴에 따른다.

◆ hangul_syllable_len()

int hangul_syllable_len ( const ucschar str,
int  max_len 
)

한 음절에 해당하는 코드의 갯수를 구하는 함수

매개변수
str음절의 길이를 구할 스트링
max_lenstr 에서 읽을 길이의 제한값
반환값
한 음절에 해당하는 코드의 갯수

이 함수는 str 에서 한 음절에 해당하는 코드의 갯수를 구한다. 한 음절에 해당하는 코드의 갯수가 max_len 보다 많다면 max_len 을 반환한다. 한 음절이라고 판단하는 기준은 L*V*T+ 패턴에 따른다. 이 패턴은 regular expression의 컨벤션을 따른 것으로, 1개 이상의 초성과 중성, 0개 이상의 종성이 모인 자모 스트링을 한 음절로 인식한다는 뜻이다. 예를 들면 다음과 같은 자모 스트링도 한 음절로 인식한다.

예) "ㅂ ㅂ ㅜ ㅔ ㄹ ㄱ" -> "쀍"

따라서 위 경우에는 6을 반환하게 된다.

일반적으로는 방점(U+302E, U+302F)까지 한 음절로 인식하겠지만, 이 함수는 음절과 자모간 변환을 편리하게 하기 위해 구현된 것으로 방점은 다른 음절로 인식한다.

str 이 자모 코드에 해당하지 않는 경우에는 1을 반환한다.

이 함수는 자모 스트링에서 총 음절의 갯수를 구하는 함수가 아님에 주의한다.

다음에 의해서 참조됨 : hangul_jamos_to_syllables().

◆ hangul_syllable_to_jamo()

void hangul_syllable_to_jamo ( ucschar  syllable,
ucschar choseong,
ucschar jungseong,
ucschar jongseong 
)

음절을 자모로 분해

매개변수
syllable분해할 음절
반환값
choseong음절에서 초성 부분의 코드
jungseong음절에서 중성 부분의 코드
jongseong음절에서 종성 부분의 코드, 종성이 없으면 0을 반환한다
반환값
없음

이 함수는 syllable 로 주어진 음절 코드를 분해하여 자모 코드를 반환한다. 반환하는 값은 choseong, jungseong, jongseong 의 포인터에 대입하여 리턴한다. 종성이 없는 음절인 경우에는 jongseong 에 0을 반환한다.

다음을 참조함 : hangul_is_syllable().

다음에 의해서 참조됨 : hangul_syllable_to_jaso().