cmp rax, 12 / 마지막에 NUL도 비교하나요?
cmp rax, 12
jmp
십진법으로 0~17까지 반복하고 18이되면 1을 리턴하는것 같은데
정답의 문자의 갯수는 17개로 0~16까지만 반복하면 되는것같은데
반복을 한 번 더 하는 이유가 마지막에 NUL끼리도 비교하기때문에 그런건가요?
문자열의 끝에 제가 따로 입력하지 않아도 알아서 널문자가 들어가나요?
+작성한 글 삭제하는 방법이 혹시 있나요?
작성자 정보
답변
1
5unkn0wn
강의 수강: 50
네 올바른 입력은 17글자이지만 18글자를 비교하는 이유는 마지막에 들어가는 NULL 문자까지 확인하기 위함입니다!
만약 NULL 문자까지 비교하지 않는다면 앞 17글자를 맞추고 뒤에 추가적인 문자열을 아무거나 입력해도 올바르다고 판단하기 때문에 중복 정답이 생길 수 있습니다.
그리고 scanf 함수로 문자열을 입력 받을 때에는 사용자가 입력한 문자열의 맨 끝에 항상 자동으로 NULL이 붙게 됩니다.