본문 바로가기
👨‍🏫Study/C++

[C++] string 라이브러리 정리

by 코푸는 개발자 2021. 9. 24.
728x90
String 라이브러리

라이브러리 선언

#include <string>

 

size()

size() 함수는 해당 문장열의 사이즈 반환

#include <iostream>
#include <string>

using namespace std;

int main(){
	string s = "Test";

	cout << s.size() << '\n';// 4 반환
}

*length()함수 역시 size() 함수와 동일한 기능을 가집니다.

 

capacity()

문자열 객체에 할당된 메모리 크기 반환

*size에 비해 추가될 내용을 대비히 넉넉하게 할당됩니다.

#include <iostream>
#include <string>

using namespace std;

int main(){
	string s = "Test";

	cout << s.capacity() << '\n';// 15 반환
}

 

resize()

문자열 객체를 n만큼의 크기로 만듭니다.

원래 크기가 n보다 크다면 남은 부분은 버림

n보다 작다면 남은 공간을 빈공간으로 채움

#include <iostream>
#include <string>

using namespace std;

int main(){
	string s = "Test";

	cout << s << '\n';// Test
    
    unsigned sz = s.size();
    
    s.resize(sz+2,'+');
    cout << s << '\n';// Test++
    
    s.resize(3);
    cout << s << '\n';// Tes
}

 

clear()

string 객체에 있는 문자열을 지우는 함수

*size, length는 모두 0이 되고 capacity는 그대로 유지

#include <iostream>
#include <string>

using namespace std;

int main() {
    string s = "Test";

    s.clear();

    cout << s.size() << '\n';// 0
}

 

empty()

문자열 객체가 비어있는지 확인해 주는 함수

bool 타입으 반환

 

at()

해당 인덱스 문자 반환

 

front(), back()

문자열의 가장 앞과 뒤를 반환

 

substr(index, len)

문자열의 index부터 len만큼 잘라서 반환

#include <iostream>
#include <string>

using namespace std;

int main() {
    string s = "Test string";

    cout << s.substr() << '\n';//Test string
    cout << s.substr(3) << '\n';//t string
    cout << s.substr(3, 3) << '\n';//t s
}

 

replace(s, len, str)

문자열(s)의 인덱스위치에서 len까지 범위를 str로 대체

#include <iostream>
#include <string>

using namespace std;

int main() {
    string s = "Test string";
    string s2 = "good";

    cout << s.replace(3,2,s2) << '\n';//Tesgoodstring
}

 

compare()

매개변수로 들어온 문자열과 비교해서 같으면 0반환, 다르면 -1 반환

#include <iostream>
#include <string>

using namespace std;

int main() {
    string s = "Test string";
    string s2 = "good";
    string s3 = "good";

    cout << s.compare(s2) << '\n';//-1
    cout << s.compare(s3) << '\n';//-1
    cout << s2.compare(s3) << '\n';//0
}

 

copy(char* arr, len, index = 0)

문자열을 arr에 index부터 len 길이만큼 복사

#include <iostream>
#include <string>

using namespace std;

int main() {
    string s = "Test string";
    string s2 = "good";
    char c[11];
    s.copy(c, 3, 5);

    for (int i = 0; i < 3; i++)
        cout << c[i];
    //str
}

 

find(string str, index = 0)

매개변수로 들어온 문자열과 비교하려는 문자열 중에 일치하는게 있는지 확인

일치하는게 있다면 첫번째 발견 인덱스 반환

index 값부터 있는지 확인, 없다면 쓰레기 값반환

#include <iostream>
#include <string>

using namespace std;

int main() {
    string s = "Test string";

    cout<< s.find("es")<<'\n';//1
    cout << s.find("es", 2) << '\n';//쓰레기 값 반환
}

 

begin()

문자열의 첫번째 문자를 가리키는 반복자(iterator) 반환

 

end()

문자의 마지막의 바로 다음 문자를 가리키는 반복자(iterator) 반환

 

swap(s1, s2)

s1 문자열과 s2 문자열을 바꾸는 것

 

append()

문자열 끝에 더함

 

assign()

문자열을 할당하는 함수

s.assign("abc"); // s = "abc"

s.assign(2, "a"); // s = "aa"

s.assign(s,1, 2); // s = "bc" , 문자열 s의 인덱스 1부터 2개 복사

 

insert(index, string s)

문자열을 지정한 위치에 삽입하는 함수

 

 

erase(index, num)

문자열을 지우는 함수(인덱스부터 num개의 문자를 지움)

 

to_string(num)

숫자형을 string타입으로 변환(char형 숫자(48~57)이면 아스키코드로 반환)

 

 

stoi(str)

문자열을 숫자로 반환

 

int to char

숫자를 아스키코드를 통해 문자로 반환

#include <iostream>
#include <string>

using namespace std;

int main() {
    int num = 65;
    cout << (char)num << '\n';// A
}

*A~Z(65~95), a~z(97~122), 0~9(48~57)

 

toupper(char), tolower(char)

해당 문자를 대문자, 소문자로 변환

*알파벳이 아니라면 입력된 매개변수가 반환됩니다.

728x90

'👨‍🏫Study > C++' 카테고리의 다른 글

[C++] 병합(Merge Sort)  (0) 2021.09.24
[C++] set 라이브러리  (0) 2021.08.22
[C++] 10 - 클래스(Class)  (0) 2021.08.11
[C++] 09 - 배열, 다차원 벡터, 문자열  (0) 2021.08.06
[C++] 08 - 포인터, 벡터 활용 예시  (0) 2021.08.06

댓글