C함수 문자열 길이 구하기 함수 strnlen()

2020. 7. 5. 17:49 컴퓨터/프로그래밍

C함수 문자열 길이 구하기 함수 strnlen()

C언어에서 문자열 길이를 구하는 함수에는 strlen()과 strnlen()이 있습니다. strlen()은 문자열만 인수로 받지만, strnlen()은 최대 길이까지 입력 받습니다. 이유는 인수로 받은 문자열 변수가 초기화가 안 되었고 NULL 문자가 없을 경우의 길이를 구하는 위험을 줄이기 위함입니다. 

즉, strnlen()은 strlen()처럼 NULL까지의 길이를 찾되 특정 길이 이상은 검색하지 않도록 합니다.

  • 헤더: string.h
  • 형태: size_t strlen( const char *str, size_t maxlen)
  • 인수: char *str 길이를 구할 문자열
    size_t maxlen 길이를 구할 최대 길이
  • 반환: 지정한 최대 길이 이내이라면 문자열 길이를 바이트 단위로 반환하며, 최대 길이까지 NULL 찾지 못하면 최대 길이를 반환합니다.

 

예제

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

int main( void)
{
   char  buff[1024];

   sprintf( buff, "badayak.com");
   printf( "strlen( buff) = %ld\n", strlen(buff) );
   printf( "strnlen( buff, 5) = %ld\n", strnlen(buff, 5) );

   return 0;
}

실행 결과

]$ ./a.out
strlen( buff) = 11
strnlen( buff, 5) = 5
]$


이 댓글을 비밀 댓글로

티스토리 로그인이 풀리면 여기를 클릭하세요.

  1. 잘 보고 공감하고 갑니다^^
    • 2020.07.05 22:28
    비밀댓글입니다
error: Content is protected !!