회신: 41.7 문자열 비교하기 문제
, 도장_ 관리자님이 작성Unit 41.2 문자열 비교하기를 보면
https://dojang.io/mod/page/view.php?id=346
한 가지 주의할 점이 있는데 strcmp 함수는 운영체제에 따라서 동작 방식이 조금 다르다는 점입니다. Windows(Visual Studio)에서는 문자열이 다르면 1과 -1을 반환하지만 리눅스와 OS X에서는 ASCII 코드값의 차이를 반환합니다. 그러므로 리눅스와 OS X에서 strcmp의 반환값을 판단할 때는 switch 분기문 대신 if조건문을 사용해야 합니다.
이와 같은 내용이 있습니다.
온라인 심사는 리눅스에서 수행됩니다. 따라서 1, -1을 반환하는 코드로는 심사를 통과할 수 없습니다.
따라서 41.5 연습문제: 문자열 비교하기에서 제시한 예제 코드처럼 작성해야 합니다.
https://dojang.io/mod/page/view.php?id=349
문의한 코드는 strcmp가 -1, 0, 1만 반환한다고 가정하고 작성되었으나 strcmp 함수는 실행 환경에 따라 반환값이 3, -3처럼 다른 정수가 될 수 있습니다. 그래서 switch 문에 실행도 안 되는 상황이 발생합니다.