본문 바로가기

CS/C, C++

[STL] string 정리

 

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