728x90
헤더 : #include <string> 또는 #include <bits/stdc++.h>
+=
문자열과 문자열을 더할때 사용
begin(), end()
문자열의 처음과 끝 iterator 반환
advance(iterator, cnt)
해당 iterator를 cnt까지 증가시킨다
#include <bits/stdc++.h>
using namespace std;
vector<int> v;
int main(){
for(int i=0;i<5;i++) v.push_back(i); //0 1 2 3 4
auto it = v.begin();
cout << *it << "\n"; //0
advance(it, 3);
cout << *it << "\n"; //3, it의 값을 3 증가시킴
cout << *(v.begin()) << "\n"; //0
return 0;
}
size()
문자열의 사이즈 반환
insert(위치, 문자열)
특정 위치에 문자열 삽입, O(n)
erase(위치, 삭제할 크기)
특정 위치에 크기만큼 문자열 지움, O(n)
pop_back()
문자열 끝을 지움, O(1)
find(문자열)
특정 문자열을 찾아 위치를 반환
문자열을 못찾을 경우 string::npos 반환
string::npos는 size_t 타입의 최대값을 의미한다. OS에 따라 달라지며(64비트, 32비트) 부호가 없는 최대 정수값을 가진다. ex) 18446744073709551615
substr(위치, 크기)
특정 위치에서 크기만큼 문자열 추출, O(n)
#include <bits/stdc++.h>
using namespace std;
int main(){
string a = "love is";
a += " pain!";
a.pop_back(); //마지막 문자 ! 삭제함
cout << a << ":" << a.size() << "\n";
cout << *(a.begin()) << '\n'; //처음 글자 출력
cout << *(a.end()-1) << '\n'; //마지막 글자 출력
//문자열 삽입
a.insert(0,"test ");
cout << a << ":" << a.size() << "\n";
//문자열 삭제
a.erase(0,5);
cout << a << ":" << a.size() << "\n";
//문자열 찾기
auto it = a.find("is");
if(it!=string::npos) cout << "포함"<<"\n"; //문자열 is 찾았으면 포함 출력
cout << it << "\n"; //찾은 문자열의 첫번째 원소 위치
cout << string::npos << "\n";
//문자열 추출
cout << a.substr(5,2) << "\n";
return 0;
}
reverse()
원본 문자열을 거꾸로 뒤집음, 리턴값 없이 원본 수정
reverse(begin iterator, end iterator)로 일정 부분만 수정 가능
split() -> C++에서는 지원X, 직접 구현
atoi(s.c_str())
문자열을 int로 바꿔야하는 상황일때 입력받은 문자열이 숫자로 구성되어있는지 확인 가능
숫자로 구성된 문자열 -> 1
그렇지 않을때 -> 0
#include <bits/stdc++.h>
using namespace std;
int main(){
string s ="1";
string s2="amumu5";
cout << atoi(s.c_str()) << "\n"; //숫자로 구성된 문자열이므로 1 리턴
cout << atoi(s2.c_str()) << "\n"; //문자로 구성된 문자열이므로 0 리턴
return 0;
}
s3="35mumu8"일때 atoi 결과가 35으로 리턴되는 것을 보고 검색해보니
문자열의 첫부분만 숫자이면 그 숫자까지 된다고 한다.
stoi(str)도 있다.
https://dream-and-develop.tistory.com/57
728x90
'알고리즘 > C++' 카테고리의 다른 글
2주차 그래프이론, DFS, BFS (2) | 2023.01.09 |
---|---|
C++ 기본 (0) | 2022.12.28 |
1주차: 시간복잡도, 누적합 (1) | 2022.12.28 |
알고리즘 암기할 코드들 (0) | 2022.12.27 |
0주차: 재귀, 순열, 조합, split (1) | 2022.12.27 |