01. String 컨테이너
- string은 vector 컨테이너와 비슷한 컨테이너로, 시퀀스 컨테이너이며 배열 기반 컨테이너입니다.
- 표준 C++ 라이브러리는 문자와 관련된 두 컨테이너(string, wstring)를 제공합니다.
- string은 char 형식의 문자를 관리하기 위한 basic_string<char> 컨테이너의 typedef 형식이며,
- wstring은 유니코드 문자(wchar_t)를 관리하기 위한 basic_string<wchar_t> 컨테이너의 typedef 형식입니다.
- C, C++ 문자열처럼 '\0' 문자를 요구하지 않습니다.
02. String 인터페이스
생성자
string s; | 기본 생성자로 s를 생성 |
string s(sz); | sz 문자열로 s 생성 |
string s(sz,n); | sz 문자열에서 n개의 문자로 s를 생성 |
string s(n,c); | n개의 c문자로 s를 생성 |
string s(iter1,iter2); | 반복자 구간 [iter1,iter2)의 문자로 s를 생성 |
string s(p1,p2); | 포인터 구간 [p1,p2)의 문자로 s를 생성 |
멤버함수
string 컨테이너에 특별히 추가된 함수들만 정리해보았습니다.
다른 함수들을 vector 컨테이너와 비슷하므로 다음을 참고해주세요!
s.append(sz)외 여러 버전 | s에 sz를 붙인다. |
s.assign(sz)외 여러 버전 | s에 sz 문자열을 할당한다. |
s.compare(s2)외 여러 버전 |
s와 s2를 비교한다. |
s.substr(pos) | pos부터의 s의 문자열을 돌려준다. |
s.replace(pos,n,sz)외 여러 버전 |
pos 위치의 n개의 문자를 sz로 바꾼다. |
s.find(c)외 여러 버전 | c 문자를 검색한다. |
s.rfind(c)외 여러 버전 | c 문자를 끝부터 찾는다. |
s.copy(buf,n) | buf로 n개의 문자를 복사한다. |
s.data() | 문자열의 배열 주소를 반환한다. |
s.c_str() | C 스타일(널문자를 포함한)의 문자열의 주소를 반환한다. |
s.length() | 문자의 개수 |
s.insert(n,sz)외 여러 버전 | n의 위치에 sz를 삽입한다. |
연산자
s[i] | i번째 위치의 문자 |
s+=s2 | s와 s2의 합을 s에 할당한다. |
s+s2 | s와 s2를 합한 새로운 string 객체를 생성한다. |
s=s2 | s2를 s에 할당한다. |
out<<s | s를 스트림에 쓴다. |
in>>s | 스트림에서 s로 읽는다. |
getline(in,s) | 스트림에서 s로 한 줄을 읽는다. |
그외 비교 연산 | ==, !=, <, >, <=, >= |
'CS > C, C++' 카테고리의 다른 글
[STL] set, multiset 정리 (0) | 2021.01.25 |
---|