아스키 코드 대소문자 변환 문제

조회수 6557회

조건문을 사용하지 않고, 문자열을 배열로 입력받은 후, 대문자는 소문자로, 소문자는 대문자로 변환하는 코드를 만들어야 하는데

이미지

제가 코드를 짰는데,

include

using namespace std; void main() { char i=0; char x[10]; x[0] = 'a'; x1 = 'b'; x[2] = 'c'; x[3] = 'd'; x[4] = 'e'; x[5] = 'f'; x[6] = 'g'; x[7] = 'h'; x[8] = 'i'; x[9] = 'i';

int main(void)
{
    char str[100] = "ooopr";
    int i;

    cout << "ooopr";
    for (i = 0; str[i]; i++)
    {
        if (str[i] >= 'a' && (str[i] <= 'z'))
        {
            str[i] = str[i] - 'a' + 'A';
        }
        else
        {
            if ((str[i] >= 'A') && (str[i] <= 'Z'))
            {
                str[i] = str[i] - 'A' + 'a';
            }
        }
    }
    cout << oopow;
    return 0;
}
for (int i = 0; i < 10; i++)
{
    cout << char(x[i]-32);
    cout << " ";
}
cout << endl;

for (int i = 0; i < 10; i++)
{
    cout << (int)x[i];
    cout << " ";
}
cout << (char)(x[0]-32);

}

위 코드 중 oopow에 들어가야 되는 코드를 모르겠고, 틀린 부분이 분명히 있는거는 알겠는데, 어디서 부터 틀린 것인지를 모르겠습니다.

1 답변

  • 아스키코드표를 보면 대문자 A는 65(10진수) 소문자 a는 97(10진수) 입니다.

    32의 차이가 납니다.

    어떤 문자를 int로 형변환했을때 65~90 이면 대문자 입니다.

    어떤 문자를 int로 형변환했을때 97~122 이면 소문자 입니다.

    대문자인 경우 + 32를 해주면 해당 소문자가 됩니다.

    소문자인 경우 -32를 해주면 해당 대문자가 됩니다.

    이정도면 충분히 작업할 수 있으리라 생각됩니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)