아스키(ASCII)코드, 대소문자 변환_220716
아스키 코드
c++ 에서 사용할 수 있는 모든 문자들은 전부 하나의 숫자와 대응되며, 이를 아스키 코드
라 부른다.
'A' = 65
'Z' = 90
'a' = 97
'z' = 122
space = 32
아스키코드의 합과 차
영문자 두 개가 주어지면 각 문자의 아스키코드의 합과 차를 출력하는 프로그램을 작성해보세요.
#include <iostream>
#include <string>
using namespace std;
int main(){
char a,b;
cin >> a >> b;
cout<< (int)a + b << ' ' <<abs((int)a - b);
return 0;
}
아스키코드표 맞추기
33이상 126이하인 자연수 5개가 주어지면 해당하는 아스키코드값을 출력하는 프로그램을 작성해보세요.
#include <iostream>
#include <string>
using namespace std;
int main(){
int a;
for(int i=0;i<5;i++){
cin >> a;
cout<<(char)a<<' ';
}
return 0;
}
아스키코드 변환
영문자 a와 정수 b가 주어지면, 영문자 a에 해당하는 아스키코드 번호와, 숫자 b 번호에 해당하는 아스키 문자를 출력하는 프로그램을 작성해보세요.
#include <iostream>
#include <string>
using namespace std;
int main(){
char a;
int b;
cin >> a >> b;
cout<< (int)a <<' '<<(char)b;
return 0;
}
그 다음 알파벳
소문자 알파벳이 하나 주어지면, 그 다음 소문자 알파벳을 출력하는 프로그램을 작성해보세요. 단, 'z'의 다음 소문자 알파벳은 'a'라고 생각합니다.
#include <iostream>
#include <string>
using namespace std;
int main(){
char a;
cin >> a;
if((int)a == 122) a = 'a';
else a+=1;
cout << (char)a;
return 0;
}
그 전 알파벳
소문자 알파벳이 하나 주어지면, 그 전 소문자 알파벳을 출력하는 프로그램을 작성해보세요.
단, a
의 전 소문자는 z
라고 생각합니다.
#include <iostream>
using namespace std;
int main(){
char a;
cin >> a;
if(a == 'a') cout<<'z';
else cout<<(char)(a-1);
return 0;
}
대소문자 변환
대문자 x가 주어졌을 때, 이를 소문자로 바꿔주는 코드
방법1.ASCII
코드
char x = 'C';
x -> 67
x - 'A' -> 2 (67 - 65)
방법2.tolower()
함수tolower
함수는 cctype
헤더에 들어 있다. +)toupper
함수는 소문자를 대문자로 변환시킨다.
#include <iostream>
#include <cctype>
using namespace std;
int main() {
char x = 'C';
cout << (char) tolower(x);
return 0;
}
대소문자 판별
cctype
헤더에서 제공하는 isupper()
, islower()
함수 -> 해당하는 경우 return true 해당하지 않는경우 return false
'C'.isupper() == true;
알파벳인지에 대한 여부 isalpha
라는 함수 이용한다. -> 소문자 return 2, 대문자 return 1, 알파벳이 아니라면 return 0
isalpha('C') == 2
숫자인지에 대한 여부 역시 isdigit
이라는 함수 -> 숫자가 아니라면 return 0
isdigit('4') != 0
대문자로 출력하기
문자열이 주어지면 알파벳만 모두 대문자로 출력하는 프로그램을 작성해보세요.
#include <iostream>
#include <cctype>
#include <string>
using namespace std;
int main(){
string s;
cin >> s;
for(int i=0;i<s.length();i++){
if(isalpha(s[i]) != 0) cout<<(char)toupper(s[i]);
}
return 0;
}
소문자와 숫자
문자열이 주어지면 영문자와 숫자만 출력하되, 영문자는 모두 소문자로 출력하는 프로그램을 작성해보세요.
#include <iostream>
#include <cctype>
#include <string>
using namespace std;
int main(){
string s;
cin >> s;
for(int i=0;i<s.length();i++){
if(isdigit(s[i]) != 0) cout<<s[i];
else if(isalpha(s[i]) == 0 ) continue;
else cout<<(char)tolower(s[i]);
}
return 0;
}
대문자 소문자 바꾸기
알파벳으로 이루어진 문자열이 하나 주어지면, 대문자는 소문자로, 소문자는 대문자로 바꾸어 출력하는 프로그램을 작성해보세요.
#include <iostream>
#include <string>
using namespace std;
int main(){
string s;
cin >> s;
for(int i=0;i<s.length();i++){
if(s[i]<91) cout<<(char)(s[i] + 32);
else cout<<(char)(s[i] - 32);
}
return 0;
}