본문 바로가기

프로그래밍./C언어.

[C언어] 문자열 길이 반환 함수 (strlen) 간단예제.

strlen 함수의 원형
size_t strlen(const char* s);

기본적으로 문자열의 끝에는 문자열의 끝을 알리는 null이 있다.
strlen 함수는 null문자 이전 까지의 길이만 계산하여 리턴해 준다.

원형을 보고 아는 사람도 있겠지만. strlen() 괄호 안의 매개변수는 "문자열주소" 이다.
배열의 이름은 그 시작 배열의 주소와 동일하기 때문에 가능하다.

strlen()은 그런 일이 별로 없지만 다른 문자열 관련 함수들에서 혼동하는 경우가 있다.


하지만, str[strlen(str)] 즉, str[4] 라고 하면 마지막 글자인 t 가 나올까?
여기가 함정이다. 4글자가 맞고. null 전까지 계산한게 맞다. 하지만, 배열은 0번부터 시작이다.

따라서 마지막 글자인 t는 str[3] 에 들어 있다. 그러므로 str[strlen(str)-1] 을 해줘야 한다.
만약 -1을 해주지 않으면 그 자리에는 문자열의 끝인 null이 들어 있어서 공백으로 나올 것이다.


유용한 정보가 되셨다면 아래 손가락 버튼 한번 눌러주세요 ^-^