Re: 47.1 회문 질문
, 도장_ 관리자님이 작성level을 입력했을 때 strlen("level")의 결과는 5입니다.
"level" 문자열이 C 언어 내부에 저장될 때는 끝에 널 문자가 붙습니다.
실제로는 level + \0이 저장되어 있겠지요.
strlen은 널 문자를 제외한 level 문자열의 길이만 반환합니다.
문자열 인덱스는 0부터 시작합니다.
level 문자열에서 첫 번째 문자 l은 인덱스 0이고, 다섯 번째 문자 l은 인덱스 4입니다.
word[0]은 l
word[4]는 l
따라서 둘을 비교하면 일치합니다.
length / 2를 계산하는 과정도 이해할 필요가 있습니다. length가 정수형으로 선언되었기 때문에 소수점 이하의 결과는 버려집니다.
length가 홀수여서 /2를 한다면 소수점이 버려진 값이 됩니다.
length가 5라면 5 / 2 = 2가 됩니다.
그림 인덱스와 널문자, length로 위치를 계산하는 과정은 그림 47-2를 참고하세요.