이는 gets라는 함수의 특징때문입니다.
gets는 \n이 나올 때까지의 모든 입력값을 받되, 마지막에 오는 \n값까지 문자열에 포함시키게 됩니다.
그러면
ABCDE
xyz
같은 입력값이 들어와도 둘 다 마지막에 \n이 들어가있기 때문에 실제 정답은 -1이지만 5와 같은 결과값을 낼 것입니다.
gets는 '\n'까지 읽지 않습니다.
ABCDE\n
를 넣었다면 문자열에
'A', 'B', 'C', 'D', 'E', '\0' 순서대로 들어옵니다.
현재 코드가 틀린 이유는 다른 곳에 있습니다..
abcd
aaaaaaaaaaaaaaaaaaaaaaa
를 넣어보시기 바립니다.