isalpha는 입력된 parameter가 알파벳인지 아닌지 구분한다.
다음과 같은 형식을 취한다.
int isalpha(int c)
parameter로 ASCII 코드를 입력한다. input type은 int로 되어있지만, char type을 삽입해도 된다.
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;
}
[C언어] 문자열을 숫자로 바꾸기 - 1 (atoi, atof, atol) (0) | 2022.05.28 |
---|---|
[C언어] 문자열에서 한글만 추출하기 (0) | 2021.11.08 |
[C언어] 문자열에서 숫자만 추출하기 (5) | 2021.11.06 |
C와 C++ (0) | 2020.10.01 |
visual studio code C++ 실행 시, code=3221225785가 뜨며 실행이 안될 때 (0) | 2020.09.25 |