C/C

strlen(); 문자열의 길이

HicKee 2022. 10. 3. 20:28

string.h 헤더 파일에 선언 필요

            >> #include <string.h>

 

strlen(문자열 포인터);
strlen(문자 배열);
         >> 문자열의 길이 반환

 

#include <stdio.h>
#include <string.h>    // strlen 함수가 선언된 헤더 파일

int main()
{
    char* a = "Hello";       // 포인터에 문자열 Hello의 주소 저장
    char arr[10] = "Hello";    // 크기가 10인 char형 배열을 선언 초기화

    printf("%d\n", strlen(a));    // 5
    printf("%d\n", strlen(arr));    // 5
}

strlen(a)와 같이 strlen 함수에 문자열 포인터를 넣으면 문자열의 길이가 반환
strlen(arr)와 같이 strlen 함수에 문자열이 들어있는 배열을 넣으면 배열 안에 들어있는 문자열의 길이가 반환

strlen으로 문자열 길이를 구할 때는 오직 문자열의 길이만 구하며 NULL 부분은 포함하지 않음

배열의 크기는 문자열의 길이와 전혀 상관이 없다
배열의 크기가 크던 작던 문자열의 길이만 구함

 

문자열 중간에 '\0' 값을 만나면  strlen()이 '\0' 확인 후 그 길이 까지만 반환

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

int main()
{
    char arr1[100] = "HelloHello";  
    char arr2[100] = "Hello\0Hello";

    printf("%d\n", strlen(arr1)); //10
    printf("%d\n", strlen(arr2)); //5
}