[C++] String 클래스
string class
Header :
.assign : 문자열을 할당
( 문자열 ) : 문자열을 할당한다.
( 개수, 문자 ) : 문자를 개수만큼 할당한다
( 문자열, 시작위치, 개수 ) : 매개변수 문자열의 시작위치부터 개수만큼을 호출한 문자열에 할당
1 | string s1, s2, s3 ; |
.append : +연산자의 역할처럼 문자열을 끝에 더한다.
( 문자열 ) : 문자열을 더한다
( 개수, 문자 ) : 문자를 개수만큼 끝에 더한다
( 문자열, 시작위치, 개수 ) :
1 | string s, s2 ; |
.clear : 문자열의 내용을 모두 삭제
1 | s.clear() ; |
.compare : 문자열을 비교 ( 사전순으로 비교 )
1 | s.compare( s2 ) ; // s == s2이면 0, s<s2이면 음수, s>s2이면 양수를 반환 |
.empty : 문자열이 비었는지 확인
1 | s.empty() ; |
.erase : 문자열을 지운다
( 시작위치, 개수 ) : 시작위치부터 개수만큼의 문자를 지운다.
1 | string s = "ABCDEF" ; |
.find : 특정 문자열을 찾고, 그 시작위치를 반환
( 문자 ) : 인덱스 0부터 해당 문자를 찾고, 시작위치를 반환한다.
( 문자열 ) : 인덱스 0부터 해당 문자열을 찾고, 그 시작위치를 반환한다.
( 문자열, 시작위치 ) : 시작위치부터 문자열을 찾고, 시작위치를 반환한다.
1 | string s1 = "abcd" ; |
.replace : 문자열을 대체
( 시작위치, 개수, 문자열 ) : 호출한 문자열의 시작위치부터 개수만큼의 문자를 매개변수 문자열로 대체한다.
1 | string s = "abc_def" ; |
.insert : 문자열을 지정한 위치에 삽입
( 시작위치, 문자열 ) : 시작위치에 문자열을 삽입한다.
string s = “ABCDEF” ; s.insert( 2, “xx” ) ; // s = “ABxxCDEF”
.pop_back : 문자열에서 가장 뒤의 문자 하나를 빼낸다.
.push_back : 문자열의 가장 뒤에 문자 하나를 추가한다.
string s = “ABCDEF” ; s.pop_back() ; // s = “ABCDE” s.push_back( ‘x’ ) ; // s = “ABCDEx”
.resize : 문자열의 크기를 재설정
s
.size, .length : 문자열의 크기를 반환
.max_size : 문자열이 최대로 가질수 있는 길이를 반환한다.
string s = “ABCDEF” ; int size = s.size() ; // size = 6 ( 실제 사용되고 있는 크기 ) int length = s.length() ; // length = 6 ( 문자열의 길이 )
.capacity : 할당된 메모리의 크기를 반환 ( reallocation 없이 사용할 수 있는 문자수를 반환 )
string s = “ABCDEF” ; int capacity = s.capacity() ; // size = 6, capacity = 15
★ capacity가 size보다 클때, 속도는 더 빠르다 !
= capacity가 size보다 크면, 기존 공간에 문자를 추가하면 되지만
그 반대의 경우에는 문자를 추가하기 위해 새로운 메모리를 할당해야 하기 때문이다.
.reserve : reallocation을 피하기 위해, 메모리의 최소용량을 지정
( 크기 ) : 크기만큼의 여유 메모리를 할당한다.
** 이때, 매개변수의 크기는 현재 capacity보다 크지않으면 의미도 효과도 없다.
string s = “ABCDEF” ; // size = 6, capacity = 15 s.reserve( 100 ) ; // size = 6, capacity = 111 s.reserve( 1000 ) ; // size = 6, capacity = 1007
.substr : 문자열의 일부분을 문자열로 반환
( 시작위치 ) : 시작위치부터 끝까지의 문자들을 문자열로 반환
( 시작위치, 개수 ) : 시작위치부터 개수만큼의 문자를 문자열로 반환
string s = “ABCDEF” ; string s2 = s.substr( 4 ) ; // s2 = “EF” ( 인덱스 4부터 끝까지의 문자열을 반환 ) string s3 = s.substr( 1, 3 ) ; // s3 = “BCD” ( 인덱스 1부터 3까지의 문자열을 반환 )
.swap : 문자열을 서로 바꾼다
string a = “ABCD” ; string b = “WXYZ” ; a.swap( b ) ; // a = “WXYZ”, b = “ABCD” b.swap( a ) ; // a = “ABCD”, b = “WXYZ”
.at : 문자열에서 특정위치의 문자를 액세스
string s = “ABCDEF” ; char c = s.at(3) ; // c = ‘D’
.c_str : string 문자열을 char* 형으로 바꾸어 반환한다.
string s = “ABCDEF” ; int length = strlen( s.c_str() ) ;
.date
.copy
.back
.front
.begin
.end
[C++] String 클래스
https://devch.co.kr/2019/04/25/[C++]-String 클래스-2019-04-25/