69. C++ string 클래스

C++ std::string 클래스

1. 개요

1.1 문서 개요

이 문서는 C++에서 제공하는 표준 문자열 클래스인 std::string에 대해 기록하는 문서입니다. std::string은 C++ 표준 라이브러리에서 제공하는 고수준 문자열 자료형으로, 메모리 관리, 연산자 오버로딩, 다양한 멤버 함수를 통해 문자열 처리 작업을 간결하고 안전하게 수행할 수 있도록 설계되었습니다. C 스타일 문자열에 비해 직관적인 인터페이스를 제공하며, 자동으로 null 종료 문자와 메모리를 관리합니다.

2. 내용

2.1 std::string의 선언과 초기화

2.1.1 문자열 리터럴로 초기화

#include <string>
#include <iostream>

int main() {
    std::string s1 = "Hello";
    std::string s2("World");
    std::string s3(s1);  // 복사 생성자 사용
}

2.1.2 빈 문자열 및 반복 문자 생성

std::string empty;         // 빈 문자열
std::string repeated(5, 'A');  // "AAAAA"

2.2 문자열 결합 및 조작

2.2.1 문자열 덧셈 연산자

std::string full = s1 + " " + s2;  // "Hello World"

2.2.2 append 함수

s1.append(" Everyone");  // s1 = "Hello Everyone"

2.2.3 push_back 및 pop_back

s1.push_back('!');   // 마지막에 문자 추가
s1.pop_back();       // 마지막 문자 제거

2.3 문자열 비교 및 검색

2.3.1 비교 연산자

==, !=, <, > 등의 연산자를 오버로딩하여 문자열 간 비교가 가능합니다.

if (s1 == "Hello") { ... }

2.3.2 find 및 rfind

size_t pos = s1.find("lo");     // 앞에서부터 검색
size_t rpos = s1.rfind("l");    // 뒤에서부터 검색

2.4 부분 문자열 추출 및 변형

2.4.1 substr 함수

std::string sub = s1.substr(0, 5);  // "Hello"

2.4.2 erase, insert, replace

s1.erase(0, 2);           // 앞의 두 문자 제거
s1.insert(0, "He");       // 앞에 삽입
s1.replace(0, 5, "Hi");   // 앞 5문자 "Hi"로 대체

2.5 문자열 길이 및 변환

2.5.1 length와 size

두 함수는 동일한 결과를 반환합니다.

std::cout << s1.length();  // 출력: 11

2.5.2 c_str 함수

C 스타일 문자열(const char*)로 변환할 때 사용됩니다.

const char* cstr = s1.c_str();

3. 마무리

std::string 클래스는 C++의 고수준 문자열 처리 도구로, 메모리 관리와 문자열 조작의 복잡성을 줄이고 다양한 내장 함수를 통해 유연하게 문자열을 다룰 수 있도록 지원합니다. 비교, 검색, 수정, 결합, 변환 등 다양한 기능을 내포하고 있으며, C 스타일 문자열과의 상호 변환 기능도 함께 제공합니다.

댓글 달기

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

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