묻공러
[C] strlen()
묻공러
묻지마공부
묻공러
전체
오늘
어제
  • 분류 전체보기 (487)
    • C (54)
      • [코드조선] C 핵심 (35)
      • [언어본색] C 기초 (19)
    • C++ (72)
      • [루키스] C++ (9)
      • [루키스] 콜백함수 (6)
      • [루키스] STL (8)
      • [루키스] Modern C++ (11)
      • [노코프] C++ (10)
      • [노코프] Tips (16)
      • [일지] C++ (12)
    • 자료구조 & 알고리즘 (50)
      • [코드조선] C 자료구조 & 알고리즘 (6)
      • [합격자되기] C++ 코딩테스트 (12)
      • [루키스] C++ 자료구조 & 알고리즘 (32)
    • CS (69)
      • [널널한 개발자] CS 개론 (19)
      • [혼자 공부하는] 컴퓨터 구조 (16)
      • [혼자 공부하는] 운영체제 (18)
      • [널널한 개발자] 네트워크 (16)
    • 게임 그래픽스 (46)
      • [전북대] OpenGL (25)
      • [일지] DirectX (21)
    • 게임 엔진 (124)
      • [코드조선] 언리얼 (53)
      • [코드조선] 언리얼 데디서버 (8)
      • [일지] 언리얼 (59)
      • [일지] 언리얼 (2) (3)
      • 유니티 (1)
    • 게임 서버 (17)
    • 게임 수학 & 물리 (19)
      • 게임 수학 (12)
      • 게임 물리 (7)
    • GIT & GITHUB (4)
    • 영어 (18)
      • [The Outfit] 대본 공부 (11)
      • the others (7)
    • 그 외 (14)
      • In (5)
      • Out (5)
      • Review (4)

인기 글

최근 글

hELLO · Designed By 정상우.
C/[코드조선] C 핵심

[C] strlen()

2024. 2. 9. 21:31

strlen() vs. strnlen() vs. strnlen_s()

- strlen()
strlen 함수는 null 종단 문자('\0')가 나타나기 전까지의 문자열 길이를 측정한다
하지만 null 종단 문자 이후의 메모리를 읽기 시작할 경우, undefined behaviour를 초래할 수 있다

 

- strnlen()
strnlen 함수는 첫 번째 매개변수로 전달된 문자열에서 최대한으로 지정된 길이까지만 검사한다
null 종단 문자 이전에 지정된 최대 길이에 도달하면 검사를 중단하고 그때까지의 길이를 반환한다
strnlen은 C99 표준에서 도입되었고 많은 C 라이브러리에서 사용 가능하다

 

- strnlen_s()
strnlen_s는 C11 표준에서 도입된 안전한 함수로 strnlen의 개선버전이다
추가적인 보안 검사를 수행하여 최대 길이가 벗어나면 실행 중에 런타임 에러를 발생시켜 가장 안전하며 추천된다

 

 

strlen() 구현

#include <stdio.h>

int my_strlen(const char* str);

int main(void)
{
    char string[] = "I got a feeling!";
    int length;

    length = my_strlen(string);

    printf("length: %d", length);

    return 0;
}

int my_strlen(const char* str)
{
    int i;

    for (i = 0; *str++ != '\0'; ++i) {}

    return i;
}
저작자표시 비영리 변경금지 (새창열림)

'C > [코드조선] C 핵심' 카테고리의 다른 글

[C] strcpy()  (0) 2024.02.09
[C] strcmp()  (1) 2024.02.09
[C] 포인터  (0) 2024.02.08
[C] 재귀 함수 (Resurcive Function)  (0) 2024.02.07
[C] 변수의 종류  (0) 2024.02.07
'C/[코드조선] C 핵심' 카테고리의 다른 글
  • [C] strcpy()
  • [C] strcmp()
  • [C] 포인터
  • [C] 재귀 함수 (Resurcive Function)
묻공러
묻공러
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.