질문있습니다
#include <stdio.h>
#include <stdlib.h>
int main()
{
int c;
while((c=getchar()) !=EOF)
{
if ('97' <=c && c<= '122')
{putchar(c);
}
else if ('65' <=c && c<= '90')
{putchar(c);
}
else if ('48' <=c && c<= '57')
{putchar(c);
}
else
{
printf("\n");
}
}
}
이 문제를 아스키코드를 이용하여서 0-9,a-z,A-Z로 다음처럼 나누어서 하려는데 아얘 동작자체가 이상하게 되네요. 무엇이 문제인가요?
안녕하세요. 조교 이은헌입니다.
문제가 되는 부분은 if 안에 들어가는 조건입니다.
'0'~'9'에 해당되는 아스키값이 48~57이고
'a'~'z'에 해당되는 아스키값이 65~90이고
'A'~'Z'에 해당되는 아스키값이 97~122이라서 조건을 저렇게 지정하신 것 같습니다.
아스키코드는 숫자값과 이에 해당되는 문자로 이루어져있습니다.
컴퓨터에서 숫자 48을 보면 이것을 문자 '0'으로 인식하고, 65를 보면 'a'로 인식하는 식으로 작동하는 것이지요.
' '안에 들어가는 것은 문자를 의미합니다
'0'은 실질적으로 컴퓨터에서 48로 인식하고 0은 말 그대로 0으로 인식하는 것이지요.
'48' ,'65' 이런 식의 표현은 존재하지 않습니다.
안녕하세요, 조교 이태민입니다.
presentation error는 공백 혹은 줄바꿈이 추가적으로 들어갔거나, 덜 들어갔을때 발생합니다.
줄바꿈이 더 들어가거나 적게 들어간 부분이 없는지 확인 바랍니다. ^^