오리는 오늘도 꽥꽥

개요

문자열에서 숫자만 추출하기

문자열에서 영어만 추출하기

 

iskorean(?)

 

훈민정음

 

alphabet을 판별해주는 isalpha 함수, 숫자를 판별해주는 isdigit 함수.

 

하지만 한글을 판별해주는 iskorean이라는 함수는 없다.

 

다만, 한글은 ASCII 코드로 변환하면 128번 이상의 값을 가진다는 것 정도만 알고 있자. 

 

ASCII

 

사실 ASCII 코드는 127번까지만 있고, 한글은 unsigned char 타입의 128이상의 값을 가지는데

 

자세한 건 기회가 된다면 다음에 다루도록 하겠다.

 

너무 궁금한 사람은 밑에 링크 참고

 

https://m.cafe.daum.net/c-study/4tdN/22

 

ASCII CODE 128 ~ 255 에는 무엇이 있는가?

키보드로 입력할 수 없는 글자는 어떻게 화면에 나타낼 수 있을까요? 이 프로그램을 실행하면 아래와 같이 나옵니다. 실행결과를 보시면 영문키보드로는 입력이 불가능한 불어에서만 사용하는

m.cafe.daum.net

 

 

문자열에서 한글만 추출하기

 

어쨌든 한글은 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;
}

/*
결과 : 오늘은화요일입니다
*/

 

사실 한글이 아닌 다른 그래픽 문자도 범위 안에 포함된 경우가 있기 때문에 완전히 한글만 추출해내지는 못한다.

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band