tjddus1281   7일 전

질문글을 찾아보며 초기화에 문제가 있다는 사실만을 알았는데 정확한 이유를 모르겠습니다...

'*' 대신 0을 넣었을때는 정답처리가 되는데 무슨 차이가 있는지 궁금합니다...

jtw7913   7일 전

std::cin.getline 은 c++의 char[] 특성에 따라 입력끝에 NULL문자(\0)가 추가됩니다. 따라서 s[i]에 들어가는 문자열에는 abc...\0 가 되고 \0은 '*'과 다르기때문에 출력되지만 보이지는 않습니다. 하지만 백준채점환경에서는 구분되므로 틀렸습니다를 받습니다. 0으로 설정후 검사시 \0의 아스키코드인 0과 if문의 조건인 0과 같으므로 출력되지 않고 정답이 출력되는 것 입니다. 

그리고 초기화 부분에 j<6이 있는데 이건 배열의 범위를 넘어가는 접근을 시도해서(for문 루프중 s[5]에 접근시도함) 원래는 잘못된 것 이지만 UB이기 때문에 AC를 받은 것 같습니다.

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