모든 문자들은 아스키코드값으로 이루어져 있습니다. 숫자는 48 ~ 57까지 대문자는 65 ~ 90까지 소문자는 97 ~ 122번까지로 구성되어 있죠. 이러한 특성을 활용한다면 문자열을 판별하여 해당 문자가 대문자인지 소문자인지 숫자인지 특수 기호인지를 구분할 수 있는 프로그램을 만들 수 있습니다.
#include <stdio.h>
void main()
{
char input[1000];
int temp1 = 0, temp2 = 0, temp3 = 0, temp4 = 0;
int count = 0;
printf("문자열을 입력하세요 \n");
gets_s(input);
while (input[count]) {
if (input[count] >= 65 && input[count] <= 90) // 대문자
temp1++;
else if (input[count] >= 97 && input[count] <= 122) // 소문자
temp2++;
else if (input[count] >= 48 && input[count] <= 57) // 숫자
temp3++;
else // 나머지
temp4++;
count++;
}
printf("대문자 : %d\n", temp1);
printf("소문자 : %d\n", temp2);
printf("숫자 : %d\n", temp3);
printf("기타 : %d\n", temp4);
}
위와 같이 아스키코드의 범위를 분석하는것 만으로도 문자를 판별할 수 있습니다. 특히 문자열 판별은 대,소문자 구분을 해야 할때 많이 사용되게 됩니다. 위와 같이 if문을 사용하기 귀찮다면 C언어/C++에서 대소문자 구분을 위해 제공하고 있는 함수 islower, isupper를 사용하셔도 됩니다. 이름에서 알 수 있듯 islower는 소문자를 판별하는 함수 isupper는 대문자를 판별하는 함수입니다.
※ 참고로 숫자를 판별하는 함수는 isgidit()입니다.
대소문자 판별 (isupper, islower) 함수 사용법
#include <ctype.h> //C언어
#include <cctype> //C++
isupper(문자열) //대문자 판별 (대문자가 아니라면 0이 반환)
islower(문자열) //소문자 판별 (소문자가 아니라면 0이 반환)
islower, isupper함수를 사용하기 위해서는 해당 함수가 포함되어있는 <ctype.h> 헤더를 포함해야 합니다. C++의 경우 <cctype>헤더를 포함하시면 됩니다. 두 함수는 인자값으로 들어온 문자를 아스키코드로 변환하여 판별한 후 대문자 / 소문자라면 0이 아닌 숫자를 반환합니다.
대소문자 판별 (isupper, islower) 함수 사용 예제
#include <stdio.h>
#include <ctype.h> //C언어
#include <cctype> //C++
void main()
{
char input[1000];
int temp1 = 0, temp2 = 0;
int count = 0;
printf("문자열을 입력하세요 \n");
gets_s(input);
while (input[count]) {
if (isupper(input[count])) // 대문자 판별 isupper
temp1++;
else if (islower(input[count])) // 소문자 판별 islower
temp2++;
count++;
}
printf("대문자 : %d\n", temp1);
printf("소문자 : %d\n", temp2);
}
위와 같이 if문의 조건식에서 isupper, islower함수를 사용하여 대소문자를 판별할 수 있습니다.
만약 대/소문자 변환하는 방법이 궁금하다면 아래글을 참고해주세요.
'Language > C , C++ , C#' 카테고리의 다른 글
[C언어/C++] 거듭 제곱 구하기 pow 함수 사용법 & 예제 (0) | 2021.02.15 |
---|---|
[C언어/C++] 문자열 대소문자 변환 (toupper, tolower) 함수 사용법 & 예제 (1) | 2021.02.14 |
[C언어/C++] 특정 문자열 찾기/검색 &치환 strstr 함수 사용법 & 예제 (0) | 2021.02.13 |
[C언어/C++] 특정 문자 찾기/검색 &치환 strchr 함수 사용법 & 예제 (0) | 2021.02.12 |