1. 개요
std::string은 동적 크기를 가지는 문자열 클래스로, C 스타일 문자열(char*)보다 더 안전하고 편리합니다. C++의 <string> 헤더에 정의되어 있으며, std::basic_string<char>의 타입 정의입니다.
#include <string>
std::string str = "Hello, world!";
2. 주요 생성자
| 생성자 |
설명 |
string() |
빈 문자열 생성 |
string(const char* s) |
C 문자열로부터 생성 |
string(const string& str) |
복사 생성자 |
string(size_t n, char c) |
n개의 문자 c로 초기화 |
string(InputIterator first, InputIterator last) |
범위 기반 생성 |
3. 주요 멤버 함수
🔹 크기 관련
| 함수 |
설명 |
size() / length() |
문자열 길이 반환 |
empty() |
비었는지 여부 확인 |
resize(n) |
크기를 n으로 조정 |
clear() |
문자열 비우기 |
🔹 접근 및 수정
| 함수 |
설명 |
operator[] / at() |
인덱스를 통한 문자 접근 |
front() / back() |
첫/마지막 문자 접근 |
append(), += |
문자열 덧붙이기 |
insert(pos, str) |
문자열 삽입 |
erase(pos, len) |
문자열 삭제 |
replace(pos, len, str) |
부분 문자열 교체 |
push_back(c) / pop_back() |
뒤에 문자 추가/제거 |
🔹 검색
| 함수 |
설명 |
find(str) |
부분 문자열 찾기 |
rfind(str) |
뒤에서부터 찾기 |
find_first_of(chars) |
일치하는 문자 중 첫 위치 |
find_last_of(chars) |
일치하는 문자 중 마지막 위치 |
🔹 비교
| 함수 |
설명 |
compare(str) |
문자열 비교 (0이면 동일) |
==, !=, <, > |
연산자 오버로딩 지원 |
🔹 기타
| 함수 |
설명 |
substr(pos, len) |
부분 문자열 추출 |
c_str() |
C 문자열(char*) 반환 |
copy(buf, len, pos) |
문자열을 배열에 복사 |
4. 연산자 오버로딩
+ // 문자열 덧붙이기
==, !=, <, >, <=, >= // 비교
[] // 문자 접근
<<, >> // 입출력 스트림
5. 예제 코드
#include <iostream>
#include <string>
using namespace std;
int main() {
string s = "Hello";
s += " World";
cout << s << " (length: " << s.length() << ")" << endl;
s.replace(0, 5, "Hi");
cout << s << endl;
size_t pos = s.find("World");
if (pos != string::npos)
cout << "Found at: " << pos << endl;
return 0;
}
6. 관련 타입
std::wstring: 유니코드 지원 (wide character)
std::u16string, std::u32string: UTF-16, UTF-32 문자열
std::string_view (C++17): 읽기 전용 문자열 뷰
Comments