언어 자료구조 알고리즘/C11 표준 라이브러리 함수

strlen 함수 [C언어 표준 라이브러리 함수 가이드]

언제나휴일 2016. 1. 3. 15:17
반응형

strlen


헤더 파일

[언어 자료구조 알고리즘/C11 표준 라이브러리 함수] - string.h


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



사용한 함수

[언어 자료구조 알고리즘/C11 표준 라이브러리 함수] - printf

반응형