본문 바로가기
프로그래밍 언어/C++

C++ string 주요 멤버 함수

by Jo_Wick 2025. 10. 1.
반응형

1. 크기 & 용량 관련

  • size() / length() → 문자열 길이
  • capacity() → 현재 할당된 내부 버퍼 용량
  • reserve(n) → 최소 n 문자 저장할 수 있도록 용량 확보
  • shrink_to_fit() → 사용하지 않는 용량을 줄임
  • empty() → 문자열이 비었는지 확인
  • max_size() → string이 담을 수 있는 최대 크기

2. 접근 관련

  • operator[] → 인덱스로 문자 접근 (s[0])
  • at(pos) → 범위 체크 후 문자 접근 (예외 발생 가능)
  • front() → 첫 번째 문자
  • back() → 마지막 문자
  • data() → 내부 버퍼 포인터 반환
  • c_str() → C 스타일 문자열(const char*) 반환

3. 수정 관련

  • clear() → 문자열 비움
  • insert(pos, str) → 문자열 삽입
  • erase(pos, count) → 부분 삭제
  • append(str) → 문자열 뒤에 추가
  • push_back(ch) → 한 문자 추가
  • pop_back() → 마지막 문자 제거
  • replace(pos, count, str) → 부분 치환
  • swap(str) → 다른 문자열과 교환

4. 검색 관련

  • find(str, pos) → 문자열에서 부분 문자열 검색
  • rfind(str, pos) → 뒤에서부터 검색
  • find_first_of(str) → 지정된 문자 집합 중 첫 번째 등장 위치
  • find_last_of(str) → 지정된 문자 집합 중 마지막 등장 위치
  • find_first_not_of(str) → 지정된 집합이 아닌 첫 위치
  • find_last_not_of(str) → 지정된 집합이 아닌 마지막 위치

5. 부분 문자열 관련


6. 비교 관련


7. 반복자 관련

  • begin() / end() → 순방향 반복자
  • rbegin() / rend() → 역방향 반복자
  • cbegin() / cend() → const 순방향 반복자
  • crbegin() / crend() → const 역방향 반복자

 

요약

  • 크기/용량 관리: size, capacity, reserve
  • 접근: operator[], at, front, back, data, c_str
  • 수정: insert, erase, append, push_back, pop_back, replace, swap
  • 검색: find, rfind, find_first_of …
  • 부분 문자열: substr
  • 비교: compare
  • 반복자: begin, end, rbegin, rend

 

추가 사항

append / push_back

append / push_back 같은 경우 ' + ' 를 통해서도 뒤에 붙일수 있다. 두 방법 중 편한 방법으로 하면 된다.

string a = "123";

cout << a << '\n'; // 123

a += "45";

cout << a << '\n'; // 12345

a += "6";

cout << a << '\n'; // 123456

string b = "789";

a += b;

cout << a << '\n'; // 123456789

 

swap

swap을  대입(=)으로 대체할 수 있다.

string a = "123";
string b = "456";

cout << a << '\n'; // 123

a = b;

cout << a << '\n'; // 456

 

하지만

대입(=)의 경우

b의 내용을 a에 새로 복사해서 대입하기 때문에 b의 길이에 비례한 비용이 발생한다. (O(N))

 

swap의 경우

내부 포인터와 크기 등 메타데이터만 교환하기 때문에 실제 데이터를 복사하지 않아 매우 빠르다. (O(1))

반응형

댓글