tnsgh9603   3년 전

13줄에 있는 'A' <= s[i] && s[i] <= 'Z' 부분을 46줄에서 isalpha(s[i]) == 1로 바꾸고

21줄에 있는 'a' <= s[i] && s[i] <= 'z' 부분을 54줄에서 isalpha(s[i]) == 2로 바꿨을 뿐인데,

맞았던 코드가 왜 틀렸습니다가 뜰까요??

isalpha()함수는 대문자일때 1, 소문자일때 2, 그 외에는 0을 출력하는 걸로 알고있습니다.

둘 다 같은 역할을 할텐데 왜 isalpha를 쓰면 틀릴까요ㅠㅠ

Green55   3년 전

C++ 표준에서 isalpha는 알파벳일 경우 0이 아닌 어떠한 수도 리턴 될 수 있도록 되어있으며,

assert로 확인해본 결과 실제로 채점에 사용되는 컴파일러에서도 소문자면 1, 대문자면 2를 리턴하는 것이 아닌 것 같습니다.

tnsgh9603   3년 전

말씀하신대로 영문자인 경우에 컴파일러마다 반환하는 값이 다른것을 확인했습니다.

감사합니다^^

댓글을 작성하려면 로그인해야 합니다.