티스토리 뷰

728x90

문자열에 관련된 이야기는 요롷게 나눠서 포스팅하겠습니다.

0. 문자열(NULL문자)            (문자열 1장 포스팅: https://o0oheamao0o.tistory.com/107)

1. 문자열 상수 vs 문자 배열  (문자열 1장 포스팅: https://o0oheamao0o.tistory.com/107)

2. 문자열 관련 함수들 

    2-1. strcpy_s() 문자열 복사 함수              (문자열 2-1장 포스팅: https://o0oheamao0o.tistory.com/108)

    2-2. strlen()      문자열 길이 구하는 함수 

    2-3. strcmp()    문자열 비교 함수             (문자열 2-3장 포스팅: https://o0oheamao0o.tistory.com/110)

    2-4. strcat_s()  문자열 결합 함수             (문자열 2-4장 포스팅: https://o0oheamao0o.tistory.com/111)

 


2-2. strlen() : 문자열 길이 구하는 함수 

 ●  strlen() 사용법

문자열의 길이를 구하는 함수. 원형은 다음과 같다.

size_t strlen(const char* str);	// size_t는 unsigned int

사용방법은 다음과 같다.

/*문자열 상수 길이 구하기 1*/
cout << strlen("hello") << endl;

/*문자열 상수 길이 구하기 2*/
const char* str_ptr = "hello";
cout << strlen(str_ptr) << endl;

/*문자 배열안의 문자열 길이 구하기*/
char str_arr[] = "hello";
cout << strlen(str_arr) << endl;

 ●  strlen() 과 sizeof()는 다르다!

문자열의 "길이"를 구하는 것이지 바이트 크기를 구하는 것이 아니다!!

cout << "문자열 길이: " << strlen("hello") << endl;
cout << "문자열 크기: " << sizeof("hello") << endl; 

char str_arr[20] = "hello";
cout << "문자열 길이: " << strlen(str_arr) << endl;
cout << "문자열 크기: " << sizeof(str_arr) << endl;

첫번째 예시는 문자열 상수의 길이는 5지만, 실제로는 끝에 NULL문자가 붙어있기 때문에 크기는 6이 나온다.

두번째 예시는 문자열 자체는 길이가 5지만, str_arr는 20바이트를 할당받았기 때문에 배열의 크기는 20이 나온다.

 ●  strlen() 역시 NULL을 기준으로 문자열을 구별합니다.

strlen()역시 NULL문자를 기준으로 문자열의 끝을 구분한다.

따라서 다음과 같이 "aa\0aa"의 길이를 구한다면 "aa"까지만 인식해서 길이를 2라고 반환한다.

cout << " 문자열 길이: " << strlen("aa\0aa") << endl;
cout << " 문자열 크기: " << sizeof("aa\0aa") << endl;

728x90
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
글 보관함