해결된 질문
작성
·
68
·
수정됨
답변 2
0
'\0' 을 포함해서 길이를 재는 것은 없습니다. 그것은 전체 크기인 sizeof입니다.
len, length와 같은 문자열과 관련된 길이의 함수나 메서드는 무조건 "순수 문자열의 길이"를 기준으로 합니다. C언어에서도 null 문자를 만나면 false가 되어 반환하는 식으로 함수를 만들었기 때문에 null이 포함될 수가 없습니다. (만약에, 정말 만약에 문제에서 null 문자까지 포함해서 리턴하라는 낚시성 함수가 나올 수도 있으니 무조건 코드 중심으로 보셔야 합니다. 이름에 낚이지 마시길.)
네 그렇게 외우셔도 됩니다. 다른 모든 언어가 그 컨벤션을 따라가는지는 모르겠지만, 적어도 자바와 파이썬에서는 그렇습니다.
네 시험은 코드를 해석하는 것이니까 만약 C언어로 나오는 경우 함수 이름 신경쓰지말고 그냥 코드 그대로 해석하시면 됩니다.
만약 Java처럼 원래 있는 스탠다드 라이브러리나 파이썬의 내장 함수를 물어보는 것이면 순수 문자열 길이로 동작합니다.
요 아래 인프런 AI 인턴도 설명해주고 있네요. null 문자를 포함하는 길이를 리턴하는 함수는 없습니다.
0
안녕하세요, 인프런 AI 인턴입니다. 주서님.
분명히 이해하기 어려울 수 있는 점들에 대해 설명드리겠습니다.
strlen
함수(C언어): strlen
함수는 문자열의 길이를 반환하는 함수로, null
문자(‘\0’)를 제외한 실제 문자 개수를 반환합니다.length
관련(C/C++/Java): C
언어의 경우 문자열의 길이를 구할 때 strlen
을 사용합니다. 자바의 length()
메소드는 문자열의 null
문자를 포함하지 않습니다. 파이썬의 len()
함수도 실제 길이만 구합니다.substring
및 인덱싱 관련:substring(start, end)
메소드는 일반적으로 문자열을 자를 때 사용되며, start
부터 end-1
까지의 문자열을 반환합니다. end
위치의 문자는 포함되지 않는다는 점을 유의하셔야 합니다.1 <= a < 4
의 개념으로 이해하시는 것이 맞습니다.일반적으로 대부분의 프로그래밍 언어의 substring
이나 인덱스 관련 메소드들은 end
범위의 전까지 포함하는 형식을 따르고 있습니다. 따라서, 사용하시는 언어의 문서를 확인하시고 그 규칙을 따르면 예외적인 경우는 크게 없을 것입니다.
substring
에 관한 정보와 결과에 대해 추가적인 예시를 제공합니다.저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
아 제가 sizeof와 헷갈렸나보네요.. 큰 실수 할뻔했습니다.