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

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

C strnlen() 문자열 길이 구하기 함수 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 <ctype.h>

int main( void)
{
   int   ch1 = '1'; 
   int   ch2 = ' ';
   int   ch3 = '\t';  // 탭 문자
   
   if ( isgraph( ch1))  
      printf( "%c(x%02x)는 인쇄 가능 문자입니다.\n", ch1, ch1);
   else
      printf( "%c(x%02x)는 인쇄 가능 문자가 아닙니다.\n", ch1, ch1);

   if ( isgraph( ch2))
      printf( "%c(x%02x)는 인쇄 가능 문자입니다.\n", ch2, ch2);
   else
      printf( "%c(x%02x)는 인쇄 가능 문자가 아닙니다.\n", ch2, ch2);

   if ( isgraph( ch3))
      printf( "%c(x%02x)는 인쇄 가능 문자입니다.\n", ch3, ch3);
   else
      printf( "%c(x%02x)는 인쇄 가능 문자가 아닙니다.\n", ch3, ch3);
      
   return 0;
}

실행 결과

]$ ./a.out
strlen( buff) = 11 
strnlen( buff, 5) = 5
]$
이 댓글을 비밀 댓글로
  1. 잘 보고 공감하고 갑니다^^
    • 2020.07.05 22:28
    비밀댓글입니다