오리는 오늘도 꽥꽥

개요

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

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

 

isalpha

 

alphabet

 

isalpha는 입력된 parameter가 알파벳인지 아닌지 구분한다.

 

다음과 같은 형식을 취한다.

 

int isalpha(int c)

 

parameter로 ASCII 코드를 입력한다. input type은 int로 되어있지만, char type을 삽입해도 된다.

 

ASCII Code

input 변수가 char형으로 변환했을 때, 알파벳인 경우 1을 반환하고 아닌 경우 0을 반환한다.

 

 

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

 

isalpha와 반복문을 활용하면 된다.

 

#include <stdio.h>
#include <ctype.h>

int my_isdigit(int ch);

int main ()
{
	char *str = "Hi, Today is 11 month 7 day 2021 year!";
	char buff[100] = {0,};
	int i = 0;
	
	while(*str)
	{
		if(isalpha(*str))
		{
			buff[i++] = *str;
		}
		str++;
	}
	printf("%s\n",buff);
}

/* 결과
HiTodayismonthdayyear
*/

 

직접 구현해볼 수 있다. 간단하다.

 

65 ~ 90은 대문자에 해당하고, 97 ~ 122는 소문자에 해당한다.

 

범위를 잘 설정하면 소문자, 대문자 따로 추출해낼 수 있고, 특정 알파벳만 추출해낼 수도 있다.

 

참고로 91 ~ 96 은 특수문자가 포함되어 있기 때문에 범위를 65 이상 122 이하로 하면

 

완전한 isalpha 함수라고 할 수 없다.

 

int my_isalpha(int ch)
{
	if (ch >= 65 && ch <= 90) // ASCII 65 ~ 90 -> A ~ Z
		return 1;
	else if (ch >=97 && ch <= 122) // ASCII 97 ~ 122 -> a ~ z
		return 1;
	return 0;
}
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band