컴공생의 다이어리

[c++] string 관련 함수 본문

Development/C & C++

[c++] string 관련 함수

컴공 K 2020. 12. 27. 06:35

.assign : 문자열을 할당하는 함수

(문자열) : 문자열을 할당

(개수, 문자) : 문자를 개수만큼 할당

(문자열, 시작위치, 개수) : 매개변수 문자열의 시작위치부터 개수만큼을 호출한 문자열에 할당

string s1,s2,s3;
s1.assign("ABCDEFG");	//s1="ABCDEFG"
s2.assign(3,'a');		//s2="aaa"
s3.assign(s1,2,4);		//s3="CDEF" (문자열 s1의 2부터 4개를 복사하여 할당)

 

 

.append : +연산자의 역할처럼 문자열을 끝에 더한다.

(문자열) : 문자열을 더한다

(개수, 문자) : 문자를 개수만큼 끝에 더한다

(문자열, 시작위치, 개수) : 매개변수 문자열의 시작위치부터 개수만큼을 호출한 문자열 뒤에 더한다

string s1,s2;
s1.append("ABCDEFG");	//s1="ABCDEFG"
s1.append(3,'a');		//s1="ABCDEFGaaa"
s2="S2";
s2.append(s1,2,4);		//s2="S2CDEF" (문자열 s1의 2부터 4개를 복사하여 문자열 s2 끝에 더한다)

 

 

.clear : 문자열의 내용을 모두 삭제

string s1;
s1="HI";		//s1="HI"
s1.clear();		//s1=""

 

 

.compare : 문자열을 비교 (사전순으로 비교)

s1.compare(s2);		//s1==s2이면 0, s1<s2이면 음수, s1>s2이면 양수를 반환

 

 

.empty : 문자열이 비어있는지 확인

s.empty();

 

 

.erase : 문자열을 지운다.

(시작위치, 개수) : 시작위치부터 개수만큼의 문자를 지운다.

string s="ABCDEF";
s.erase(0,3);		//s="DEF"

 

 

.find : 특정 문자열을 찾고, 그 시작 위치를 반환

(문자) : 인덱스 0부터 해당 문자를 찾고, 그 시작위치를 반환

(문자열) : 인덱스 0부터 해당 문자열을 찾고, 그 시작위치를 반환

(문자열, 시작위치) : 시작위치부터 문자열을 찾고, 시작위치를 반환

string s1="ABCDEF";
string s2="B";
string s3="EF";
int location=s1.find(s2);		//location=1
int location1=s1.find(s3);		//location1=4

 

 

.replace : 문자열을 대체

(시작위치, 개수, 문자열) : 호출한 문자열의 시작위치부터 개수만큼의 문자를 매개변수 문자열로 대체

string s="ABC_DEF";
s.replace(4,3,"XYZ");		//s="ABC_XYZ"

 

 

.insert : 문자열을 지정한 위치에 삽입

(시작위치, 문자열) : 시작위치에 문자열을 삽입

string s="ABCDEF";
s.replace(3,"__");		//s="ABC__DEF"

 

 

.pop_back : 문자열에서 가장 뒤의 문자 하나를 뺌

.push_back : 문자열의 가장 뒤에 문자 하나를 추가

string s="ABCDEF";
s.pop_back();		//s="ABCDE"
s.push_back('x');	//s="ABCDEx"

 

 

.resize : 문자열의 크기를 재설정

 

 

.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

 cf) capacity가 size보다 클 때, 속도는 더 빠르다.

 (=capacity가 size보다 크면, 기존 공간에 문자를 추가하면 되지만 그 반대의 경우에는 문자를 추가하기 위해 새로운 메모리를 할당해야 하기 때문)

 

 

.reserve : reallocation을 피하기 위해, 메모리의 최소용량을 지정

(크기) : 크기만큼의 여유 메모리를 할당

string s="ABCDEF";
s.reserve(100);

 

 

.substr : 문자열의 일부분을 문자열로 반환

(시작위치) : 시작위치부터 끝까지의 문자들을 문자열로 반환

(시작위치, 개수) : 시작위치부터 개수만큼의 문자를 문자열로 반환

string s1="ABCDEF";
string s2=s1.substr(4);		//s2="EF"
string s3=s1.substr(1,3);	//s3="BCD"

 

 

.swap : 문자열을 서로 바꾼다.

string s1="ABC";
string s2="XYZ";

s1.swap(s2);	//s1="XYZ" s2="ABC"
s2.swap(s1);	//s1="ABC" s2="XYZ"

 

 

.at : 문자열에서 특정 위치의 문자를 액세스

string s="ABC";
char c=s.at(1);		//c='B'

 

 

.c_str : string 문자열을 char*형으로 바꾸어 반환

string s="ABC";
int length=strlen(s.c_str());

 

 

.front : 문자열의 첫 번째 문자 반환

.back : 문자열의 마지막 문자 반환

string s="ABC";
s.front();		//=>A
s.back();		//=>C

 

 

.begin : 문자열의 첫번째 문자를 가리키는 반복자(iterator 포인터)를 반환

.end : 문자열의 마지막의 바로 다음을 가리키는 반복자(iterator 포인터)를 반환

 

 

modoocode.com/312

 

씹어먹는 C++ 강좌 - PDF 파일

 

modoocode.com

 

728x90

'Development > C & C++' 카테고리의 다른 글

[c++] 형식 플래그(format flag)와 조작자(Manipulator)  (0) 2021.01.03
[c++] cin (입력 받기)  (0) 2021.01.02
[c++] const 함수  (0) 2020.12.27
[c++] 레퍼런스를 리턴하는 함수  (0) 2020.12.27
[c++] 클래스의 객체 수  (0) 2020.12.27
Comments