본문 바로가기
C++ STL/Part 02 STL 이해

12장. string 컨테이너

by 노오오오오옹 2021. 6. 22.

1. string의 주요 인터페이스와 특징

시퀀스 컨테이너이며 배열 기반의 컨테이너(vector와 비슷)이다.

  • string : char 형식의 문자를 관리하는 basic_string<char> 형식
  • wstring : 유니코드 문자를 관리하기 위한 basic_string<wchar_t> 형식
  • 구조
생성자 설명
string s 기본 생성자로 s 생성
string s(sz) sz 문자열로 s 생성
string s(sz, n) sz 문자열에서 n개의 문자로 s 생성
string s(n, c) n개의 c문자로 s 생성
string s(b, e) [b, e) 문자로 s 생성
string s(p1, p2) 포인터 구간 [p1, p2)로 s 생성
멤버함수 설명
s.append(sz) s에 sz를 이어 붙인다
s.assign(sz) s에 asz 문자열을 할당한다
s.at(i) s의 i번째 문자를 참조
s.c_str() C 스타일의 문자열의 주소 변환
n = s.capacity() n은 s의 할당된 메모리 크기
s.clear() s를 비움
s.compare(s2) s와 s2를 비교함
s.copy(buf, n) buf로 n개의 문자를 복사
s.data() 문자열의 배열의 주소를 반환
s.empty() s가 비었는가?
s.find(c) c 문자를 검색한다.
s.rfind(c) c 문자를 검색하는데, 끝부터 찾는다.
s.insert(n, sz) n의 위치에 sz를 삽입한다.
s.length() s는 문자의 개수
n = s.max_size() n은 s의 최대 문자의 개수
s.push_back(c) s의 끝에 c를 추가
s.replace(pos, n, sz) pos위치의 n개의 문자를 sz로 바꿈
s.reserve(n) n개의 문자를 저장할 수 있는 공간을 예약한다
s.resize(n) s의 크기를 n으로 변경한다. 확장되는 곳은 기본값으로 초기화한다.
s.resize(n, c) s의 크기를 n으로 변경한다. 확장되는 곳은 c로 초기화한다.
s.size() s 원소의 개수
s2 = s.substr(pos) s2는 pos부터의 s 문자열
s.swap(s2) s와 s2를 스왑
반복자 설명
p = s.begin() p는 s의 첫 문자를 가리키는 반복자
p = s.end() p는 s의 끝을 가리키는 반복자
p = s.rbegin() p는 s의 역 순차열의 첫 원소를 가리키낟.
p = s.rend() p는 s의 역 순차열의 마지막 원소를 가리킨다.
q = s.erase(p) p가 가리키는 문자를 제거한다. q는 p 다음 문자를 가리킨다.
q = s.erase(b,e) [b,e)의 문자를 제거한다.
연산자  
s[i] i번재 위치의 문자
s += s2 s와 s2의 합을 s에 할당한다
s + s2 s와 s2를 합한 새로운 string 객체
s = s2 s에 s2를 할당
out << s s를 스트림에 쓴다
in >> s 스트림에서 s를 읽는다
getline(in,s) 스트림에서 s로 한줄을 읽는다.
그외 ==, !=, <, >, <=, >=
멤버 정의 형식  
   
   
   
   
   
   

 

연산자 설명
   
   
   
   
   
   
멤버 정의 형식 설명
   
   
   
   
   
   
생성자 설명
   
   
   
   
   
   

 

2. string의 주요 멤버 함수 정리

'C++ STL > Part 02 STL 이해' 카테고리의 다른 글

11장. 컨테이너 어댑터  (0) 2021.06.22
10장 반복자  (0) 2021.06.22
9장 STL 함수 객체  (0) 2021.06.22
8장 알고리즘  (0) 2021.06.22
7장 연관 컨테이너  (0) 2021.06.22

댓글