진짜 40분째 잡고있는데 안그래도 돌대가리인거 터져버리겠네요
cpp 바로 입문하면 어려울거같아서 c부터 공부중인데 .. 뭐 어케해야하는지 감이안오네요 ..
아스키코드로 받아서 65~90 (대문자) 면 -64 하고, 97~122 (소문자)면 -96 해서 알파벳순서 나타내려고 ,
일단 소문자만 입력받는식으로 했고.. 문자열의 마지막을 어떻게 찾아야할지 몰라서 ~ ( 아스키코드로 126) 설정하고, 스페이스는 그냥 -1로 하게끔 했는데
답이안나오네요 .. 이문제 빼곤 다 풀었는데 그냥 접고 넘어가는게 맞는걸까요 ?

마지막 문자열이 123 이라 쳣을때 걍 123 리턴 시키고 함수 analize == 123 이면 탈출 시키면 안됨??
근데 이게 매번 마지막 문자열이 어떻게 될지 모르니까 analyze == 123이 안되지않나요 ?
아스키 코드 숫자로 적을 필요 없이 'A' <= x && x <= 'Z' 이런 식으로 해도 x 대문자 A에서 Z사이 임
'A' 적으면 알아서 해당하는 아스키 코드 값으로 바꿈
'A' 는 char로 함수를 선언,정의해야하는건가요 ? 'A'는 문자 그대로 'A'로 알아먹지않나요?
char 써도 아스키 코드 활용할 수 있는데
char로 함수를 선언,정의한다음 'A' , 'Z' , 'a' 이런식으로 말인가요? 근데 숫자로 리턴해주려면 int로 선언하는게 낫지않나요 ?
'a'-96 하면 값 1이 리턴되나요? 제가 아스키코드값은 scanf랑 printf만 해봐서 잘 몰라서 저렇게 해버렸네요
char 범위가 -128~127인데 이 밖의 숫자를 표현해야 하는 것도 아니고 상관없지
97-96=1이니까 당연
이거 한번 제가 코드짜고 눈으로 확인만하고 자로가야겠네요 .. 군인이라 12시까지 연등이라 답변은 감사합니다.. 혹시 다른 문제는 어떻게 해결하면 좋을까요 ?
그리고 왜 for문을 썼는지 모르겠는데 그냥 return ch-96 하면 됨
아 그렇네요 지금보니까 for문 없이 if문만 써서 대문자체크해주고 소문자체크해주고 -96 혹은 -64만 해주면 되겠네요
'A'는 65랑 완전히 동일함
analyze(char ch) 로 정의한다음
main함수에서 F를 넘겨준다고했을때 analyze 함수에서 return 'F' - 64 ; 하면 6이 리턴되나요 ??
ㅇ
아 그렇네요 .. return ch-1; 하고 제가 f입력하니까 102리턴받네요 저건 그렇게 수정하는게 좋겠네요.
문자열의 마지막인지는 어떻게 체킹하는게 좋을까요 ?
현재 문자가 '~'이면 종료
그거말고는 뭐 없을까요 ?
뭘 원함
나라면 그냥 for(char c; (c=getchar())!='~';) printf("%d ", isalpha(c) ? c&15 : -1); 라고 짤 듯
scanf는 white space 나오기 전까지만 가져오기 때문에 띄어쓰기를 하면 그 전까지만 입력됨. 그래서 a a a ~하면 맨 앞에 a만 입력되는거. 그러면 그냥 쭈욱 읽다가 우연히 ~ 나오면 멈추는거임. fgets(sentence, 100, stdin); 으로 바꿔보셈.