while문의 expression이랑 if문의 expression은 이해가 됐는데
ch -= 'a' - 'A' 라는 표현식이 이해가 안되네요
a를 입력하면 ch는 a가 돼서 'a' - 'a' - 'A'가 되는거 맞죠?
근데 이게 어떻게 대문자가 나와여
while문의 expression이랑 if문의 expression은 이해가 됐는데
ch -= 'a' - 'A' 라는 표현식이 이해가 안되네요
a를 입력하면 ch는 a가 돼서 'a' - 'a' - 'A'가 되는거 맞죠?
근데 이게 어떻게 대문자가 나와여
표현식의 값이 -'A'이면 음수 아닌가요?
오타아님? +'A'가 맞는듯
돌려봤는데 저대로 해도 소문자가 대문자로 바뀌네여
난 안되는데
지금 강의 보고 따라하는건데 강의 내용도 딱 저 내용인데 강의에서도 오류없이 소문자가 대문자로 나오네여
애초에 저대로면 ch가 음수라 unsigned로 들어가면 제대로 나올수가없음
왜인진 모르겠는데 하여튼 코드 틀린건 맞음
님아 ch = ch - 'a' - A'랑 ch -= 'a' - 'A'랑 같은거 맞죠?
ch = ch - ('a' - A')
ㄷㄷ 이런 함정이 있었구나 정말 ㄳ합니다
ㄴ이건가보다
입력값과 한문자를 아스키 숫자로 바꿔서 생각해봐 char는 -128~+127인건 알지?
입력값을 a라 하면 숫자로 바꾸면 97 인데
그러면 'a' - 'a' - 'A'는 97 - 97 - 65 아닌가여?
a와 A의 오프셋을 걸어서 변환하는건데 윗횽들 말처럼 괄호가 빠져있는게 맞음 -65는 내부에서 191로 출력될거니까
알랴주셔서 ㄳ함미다
캐릭터값도 결국은 숫자야 아스키코드로 변환하니까 문자처럼 보이는거지
알려주셔서 ㄳ함미다
참고로 ch ^= 32; 하면 대소문자 토글됨
고게 뭔지 몰게네염 찾아봐야겟어여
if문 필요없이 대문자<->소문자 전환된단 소리
ㅇㅂ - dc App