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이 붙게 됩니다.

2020.05.20. 03:03
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기