[C언어] String 함수 : strlen, strdup

조아리 ㅣ 2024. 9. 16. 11:11

반응형

문자열 길이와 메모리 관리 함수

 

문자열 길이 strlen

주어진 문자열 str의 길이를 계산하는 함수입니다. NULL 문자를 포함하지 않습니다.

 

함수 원형

size_t strlen(const char *str);

 

예제

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

int main() {
    char str[] = "Hello, World!";
    printf("Length of string is: %zu\n", strlen(str));
    return 0;
}

 

실행결과

Length of string is: 13

 

문자열 "Hello, World!"의 길이는 13입니다(널 문자는 포함하지 않음).

 

 

문자열 복제 strdup 

주어진 문자열 str을 복제하여 새로운 메모리에 할당하는 함수입니다. 메모리 관리를 위해 free()가 필요합니다.

 

함수 원형

char *strdup(const char *str);

 

예제

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

int main() {
    char original[] = "Duplicate me!";
    char *duplicate = strdup(original);

    if (duplicate != NULL) {
        printf("Original: %s\n", original);
        printf("Duplicate: %s\n", duplicate);
        free(duplicate);
    } else {
        printf("Memory allocation failed!\n");
    }
    return 0;
}

 

실행 결과

Original: Duplicate me!
Duplicate: Duplicate me!

 

strdup은 새로운 메모리에 문자열을 복제하여 할당하고 반환합니다. 반환된 포인터를 사용한 후에는 free()로 메모리를 해제해야 합니다.

 

반응형

 

반응형