alphabet을 판별해주는 isalpha 함수, 숫자를 판별해주는 isdigit 함수.
하지만 한글을 판별해주는 iskorean이라는 함수는 없다.
다만, 한글은 ASCII 코드로 변환하면 128번 이상의 값을 가진다는 것 정도만 알고 있자.
사실 ASCII 코드는 127번까지만 있고, 한글은 unsigned char 타입의 128이상의 값을 가지는데
자세한 건 기회가 된다면 다음에 다루도록 하겠다.
너무 궁금한 사람은 밑에 링크 참고
https://m.cafe.daum.net/c-study/4tdN/22
어쨌든 한글은 unsigned char 타입에서 128 이상의 값을 가지고 있으므로
128을 기준으로 문자열에서 character들을 추출 해내면 된다.
#include <stdio.h>
void main()
{
unsigned char * string = "오늘은 화요일입니다.";
char buff[100] = {0,};
int i = 0;
while (*string)
{
if (*string > 127) // 한글 범위
buff[i++] = *string;
*string++;
}
puts(buff);
return;
}
/*
결과 : 오늘은화요일입니다
*/
사실 한글이 아닌 다른 그래픽 문자도 범위 안에 포함된 경우가 있기 때문에 완전히 한글만 추출해내지는 못한다.
[C언어] 문자를 기준으로 문자열 자르기 (strtok, strpbrk) (0) | 2022.05.29 |
---|---|
[C언어] 문자열을 숫자로 바꾸기 - 1 (atoi, atof, atol) (0) | 2022.05.28 |
[C언어] 문자열에서 영어만 추출하기 (0) | 2021.11.07 |
[C언어] 문자열에서 숫자만 추출하기 (5) | 2021.11.06 |
C와 C++ (0) | 2020.10.01 |