strlen 함수의 원형
size_t strlen(const char* s);
기본적으로 문자열의 끝에는 문자열의 끝을 알리는 null이 있다.
strlen 함수는 null문자 이전 까지의 길이만 계산하여 리턴해 준다.
원형을 보고 아는 사람도 있겠지만. 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이 들어 있어서 공백으로 나올 것이다.
유용한 정보가 되셨다면 아래 손가락 버튼 한번 눌러주세요 ^-^
'프로그래밍 > C언어.' 카테고리의 다른 글
[C언어] 문자열 복사 함수 (strcpy, strncpy) 간단예제. (0) | 2011.03.28 |
---|---|
문자열 비교 함수 (strcmp, strncmp) (0) | 2011.03.28 |
문자열 입.출력 함수(puts, fputs, gets, fgets) (0) | 2011.03.28 |
문자 입.출력 함수(putchar, fputc, getchar, fgetc) (0) | 2011.03.28 |
C언어 정리. 간략하게 (0) | 2011.03.25 |