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
과의 비교 및 상호 운용성도 중요하게 고려됩니다.