ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 아스키(ASCII)코드, 대소문자 변환_220716
    데일리 codeup/문자열 2022. 7. 16. 15:19

    아스키 코드

    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;
    }

    댓글

Designed by Tistory.