문자열 입력한거 대문자로 바꿔주는 간단한 프로그램 짠건데
27줄 부분에 toupper(upp[i]) 출력 부분에서 대문자가 안뜨고 대문자 ASCII 코드가 뜨던데 왜 그런거임?
(char) 캐스트 변환 쓰니까 바로 되긴하는데 int형으로 지정해준 곳이 없는데 갑자기 ASCII 코드 숫자가 왜 나오는거?
ex) aa 치면 A ASCII 코드 6565 출력
문자열 입력한거 대문자로 바꿔주는 간단한 프로그램 짠건데
27줄 부분에 toupper(upp[i]) 출력 부분에서 대문자가 안뜨고 대문자 ASCII 코드가 뜨던데 왜 그런거임?
(char) 캐스트 변환 쓰니까 바로 되긴하는데 int형으로 지정해준 곳이 없는데 갑자기 ASCII 코드 숫자가 왜 나오는거?
ex) aa 치면 A ASCII 코드 6565 출력
아마 toupper가 대문자로 변환시키지 못하는 char면 0이나 -1를 반환하는 녀석이여서 그런 거 아닐까?
레퍼런스 보니까 int toupper(int ch)네
ㄱㄳㄳ
char뱉을거 같은놈이 EOF == -1 표시한다고 int로 뱉는 놈들 많음
<algorithm> 헤더에있는 transform을 이용하면 훨씬간단하게짤수있음.
https://gist.github.com/anonymous/9ca3febb1bee4d902ea419793c3d1444
여기 내가 예제짜놧다.
transform을 사용하기싫으면 `for(auto& c: word) c = toupper(c);` 이렇게 쓰면된다 C++11 이상부터 지원
C++11 이상의 기능 사용이 제한이된다 하면 `for(string::iterator it = word.begin(); it != word.end(); it++) *it = toupper(*it);`
C++ 사용하면 반복자를 씁시다