68. C++ C-스타일 문자열

C++ C스타일 문자열 (strlen, strcpy 등)

1. 개요

1.1 문서 개요

이 문서는 C++에서 C 스타일 문자열 처리에 사용되는 함수들에 대해 기록하는 문서입니다. C 스타일 문자열은 null 종료 문자(\0)를 사용하여 문자열의 끝을 표시하며, <cstring> 헤더 파일에 정의된 함수들을 통해 문자열 연산을 수행합니다. 이 함수들은 char* 또는 char[] 타입을 인자로 받아 문자열 길이, 복사, 비교 등의 기능을 제공합니다.

2. 내용

2.1 문자열 길이: strlen

2.1.1 함수 설명

strlen 함수는 문자열의 길이를 반환하며, null 문자를 포함하지 않습니다.

#include <cstring>
#include <iostream>

int main() {
    char str[] = "Hello";
    std::cout << strlen(str);  // 출력: 5
}

2.1.2 주의사항

strlen은 null 문자가 없을 경우 무한 루프에 빠질 수 있으므로 반드시 null 종료된 문자열에만 사용해야 합니다.

2.2 문자열 복사: strcpy, strncpy

2.2.1 strcpy 함수

strcpy는 문자열을 복사하며, 대상 배열의 크기를 넘지 않도록 주의해야 합니다.

char dest[10];
char src[] = "ABC";
strcpy(dest, src);

2.2.2 strncpy 함수

strncpy는 복사 길이를 지정할 수 있으며, 지정 길이보다 짧을 경우 null 문자가 자동으로 붙지 않을 수 있습니다.

char dest[10];
strncpy(dest, "Hello", 3);
dest[3] = '\0';  // 수동으로 null 종료 필요

2.3 문자열 연결: strcat, strncat

2.3.1 strcat 함수

기존 문자열 뒤에 다른 문자열을 이어 붙입니다.

char str[20] = "Hello ";
strcat(str, "World");  // 결과: "Hello World"

2.3.2 strncat 함수

붙일 문자열의 최대 길이를 제한할 수 있습니다.

char str[20] = "C++ ";
strncat(str, "Programming", 4);  // 결과: "C++ Prog"

2.4 문자열 비교: strcmp, strncmp

2.4.1 strcmp

두 문자열이 동일한지 비교하여 같으면 0을 반환합니다.

strcmp("abc", "abc");  // 결과: 0
strcmp("abc", "abd");  // 결과: 음수

2.4.2 strncmp

지정된 길이만큼만 비교합니다.

strncmp("abc", "abd", 2);  // 결과: 0

3. 마무리

C 스타일 문자열은 다양한 <cstring> 함수들을 통해 길이 측정, 복사, 비교, 연결 등의 연산을 수행합니다. 이 함수들은 null 문자 기반의 배열 처리에 직접 관여하며, 메모리 경계나 null 종료 여부에 주의하여 사용해야 합니다. 고수준 문자열 클래스인 std::string과의 비교 및 상호 운용성도 중요하게 고려됩니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

error: Content is protected !!
위로 스크롤