strlen 함수

size_t  strlen( const char * str ); 문자열 길이를 구하는 함수

입력 매개 변수 리스트

str 문자열

반환 값

문자열 길이

문자열 길이를 구하는 strlen 함수는 거짓인 문자(널 문자, ‘\0’, 아스키 코드값 0)을 만날 때까지의 문자의 개수를 반환합니다. 한글 하나의 문자는 2개의 문자로 표현합니다.

사용 예에서는 strlen 함수를 사용하는 예제 코드를 포함하여 strlen 함수와 같은 동작을 하는 ehstrlen 함수를 볼 수 있습니다. 이처럼 라이브러리 함수의 내부를 이해하기 위해 같은 동작을 하는 함수를 만들어 보는 것도 나쁘지 않습니다.

사용 예

//C언어 표준 라이브러리 함수 가이드
//size_t  strlen( const char * str ); 문자열 길이를 구하는 함수
//문자열 길이를 출력

#include <string.h>
#include <stdio.h>

size_t ehstrlen(const char *str)
{
    size_t s = 0;
    for (s = 0; str[s]; s++);//거짓인 문자를 만날 때까지 반복
    return s;
}

int main (void)
{
    char *str = "hello world";
    char *kstr="안녕하세요.";//한글은 한 개의 글자를 2로 취급
    char name[50] = "abc";
    char name2[50] = "0123456789";

    printf("== strlen 함수 이용 ==\n");
    printf("%s 길이 : %d\n", str, strlen(str));
    printf("%s 길이 : %d\n", kstr, strlen(kstr));
    printf("%s 길이 : %d\n", name, strlen(name));
    printf("%s 길이 : %d\n", name2, strlen(name2));
    printf("%s 길이 : %d\n", str+3, strlen(str+3));

    printf("\n== ehstrlen 함수 이용 ==\n");
    printf("%s 길이 : %d\n", str, ehstrlen(str));
    printf("%s 길이 : %d\n", kstr, ehstrlen(kstr));
    printf("%s 길이 : %d\n", name, ehstrlen(name));
    printf("%s 길이 : %d\n", name2, ehstrlen(name2));
    printf("%s 길이 : %d\n", str + 3, ehstrlen(str + 3));
    return 0;
}

출력

== strlen 함수 이용 ==
hello world 길이 : 11
안녕하세요. 길이 : 11
abc 길이 : 3
0123456789 길이 : 10
lo world 길이 : 8

== ehstrlen 함수 이용 ==
hello world 길이 : 11
안녕하세요. 길이 : 11
abc 길이 : 3
0123456789 길이 : 10
lo world 길이 : 8