C언어 알파벳 대문자/소문자 판별과 변경 방법
C언어 아스키 코드표(ASCII Code)
C언어에서 대문자와 소문자를 표현하는 방법으로 아스키 코드를 사용하는 방법도 있습니다.
C언어에는 아스키 코드표(ASCII CODE)라는 것이 있는데, 아스키 코드를 보면 C언어에서 사용가능한 문자가 10진수나 16진수에 매칭되어 있는 것을 확인할 수 있습니다.
C언어에서 문자들은 겉으로 보기에는 'A', 'B', 'c', 'd' 처럼 문자 그 자체로 보이지만 아스키 코드에 있는 10진수 값을 이용해서 산술 연산도 가능합니다.
아래의 아스키 코드표를 보면 각각의 문자에 매칭되는 10진수와 16진수를 확인할 수 있습니다.
예를 들면, 대문자 'A'는 10진수 65라고도 할 수 있습니다.
아스키 코드를 이용한 문자와 숫자 변경
실제 코드에서도 이 아스키 코드를 어떻게 활용할 수 있는지 살펴보겠습니다.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int dec = 65;
char ch = 'A';
printf("10진수를 문자로 표현 : %c\n", dec);
printf("문자를 10진수로 표현 : %d\n", ch);
return 0;
}
위의 코드를 보면 첫 번째 출력문(printf)를 보면 출력에 사용하는 포멧은 %c로 문자 출력이지만, 인자는 dec로 int 변수인 65입니다.
하지만 출력 결과를 보면 다음과 같습니다.
10진수를 문자로 표현 : A
문자를 10진수로 표현 : 65
출력 결과에서 보시는 것처럼 첫 번째 출력 결과가 입력을 65라는 int 변수를 넣었지만 A 라는 문자로 출력되었습니다.
두 번째 출력 결과는 %d로 숫자 포멧팅이지만 인자를 char 타입의 문자 'A'를 넣었습니다.
그 결과로 10진수로 65가 출력되었습니다.
이처럼 아스키 코드가 존재하기 때문에 숫자를 문자로, 문자를 숫자로 표현할 수 있습니다.
그렇다면 대문자와 소문자는 어떻게 판단하고, 변경할 수 있을까요?
C언어 알파벳 대문자와 소문자 판별
다시 아스키 코드를 보시면 알파벳 대문자(A~Z)는 10진수로 65부터 90까지입니다.
아스키 코드 상에서 알파벳 소문자(a~z)는 10진수로 97부터 122입니다.
이를 이용하면 아래의 코드처럼 알파벳 대문자와 소문자를 판별할 수 있습니다.
#include <stdio.h>
#include <stdlib.h>
int main()
{
char ch = 'A';
scanf("%c", &ch);
if (ch >= 65 && ch <= 90){
printf("입력한 문자는 알파벳 대문자입니다.\n");
}
else if (ch >= 97 && ch <= 122){
printf("입력한 문자는 알파벳 소문자입니다.\n");
}
else {
printf("입력한 문자는 알파벳이 아닙니다.\n");
}
return 0;
}
C언어 알파벳 대소문자 바꾸기
그리고 아스키 코드에서 알파벳 대문자와 소문자는 10진수 숫자의 차이가 32입니다.
이를 이용해서 C언어에서 알파벳 대문자와 소문자를 서로 변경할 수 있습니다.
#include <stdio.h>
#include <stdlib.h>
int main()
{
char ch = 'A';
scanf("%c", &ch);
if (ch >= 65 && ch <= 90){
printf("%c", ch + 32);
}
else if (ch >= 97 && ch <= 122){
printf("%c", ch - 32);
}
else {
printf("입력한 문자는 알파벳이 아닙니다.\n");
}
return 0;
}
'알아보자 > 프로그래밍' 카테고리의 다른 글
파이썬 셀레니움 드롭다운 크롤링 select tag (3) | 2022.06.23 |
---|---|
파이썬 크롤링 셀레니움 오류 ModuleNotFoundError: No module named 'selenium' 해결방법 (0) | 2022.05.03 |
파이썬 크롤링 쿠팡 로그인 차단 접속 거부(Access Denied) 문제 해결 방법 (14) | 2022.04.29 |
셀리니움 Selenium 크롬 실행 오류(selenium.common.exceptions.SessionNotCreatedException) (1) | 2022.04.21 |
최근댓글