[C++] String(문자열)
string
문자열을 표현하는 방법에는 2가지가 있다.
char s[10];
string a;
string에서 많이 사용하는 메서드
#include <bits/stdc++.h>
using namespace std;
int main(){
string a = "love is";
a += " pain!";
a.pop_back();
cout << a << " : " << a.size() << "\n";
cout << char(* a.begin()) << '\n';
cout << char(* (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("love"); // 문자열 it가 love를 찾았다면 it에 love 저장 못찾으면 string::npos 저장
if (it != string::npos){ // it이 string::npos가 아니라면 love를 포함하고있음
cout << "포함되어 있다." << '\n';
}
cout << it << '\n';
cout << string::npos << '\n';
cout << a.substr(5, 2) << '\n';
return 0;
}
/*
love is pain : 12
l
n
test love is pain : 17
love is pain : 12
포함되어 있다.
0
18446744073709551615
is
*/
+=
문자열에서 문자열을 더할 때 사용한다.
begin()
문자열의 첫번째 요소를 가리키는 이터레이터를 반환
end()
문자열의 마지막 요소 그 다음을 가리키는 이터레이터 반환
size()
문자열의 사이즈를 반환
insert(위치, 문자열)
특정위치에 문자열을 삽입 -> O(n)의 시간복잡도
erase(위치, 크기)
특정위치에 크기만큼 문자열 삭제 -> O(n)
pop_back()
문자열의 끝 지움 -> O(1)
find(문자열)
특정 문자열을 찾아 위치 반환. 해당 문자열을 찾지 못했을 경우 string::npos를 반환 -> O(n)
string::npos는 size_t 타입의 최대값을 의미한다.
substr(위치, 크기)
특정 위치에서 크기만큼의 문자열을 추출 -> O(n)
STL에서 제공하는 문자열 기능
reverse(시작위치, 끝 위치)
https://www.acmicpc.net/problem/10988
10988번: 팰린드롬인지 확인하기
첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다.
www.acmicpc.net
#include<iostream>
#include<vector>
#include<algorithm>
#include<cstdio>
using namespace std;
int main() {
string s;
cin >> s;
string reverse_s;
reverse_s = s; // 반대를 담아둘 reverse_s를 선언하고 s를 담아둔다
reverse(reverse_s.begin(), reverse_s.end()); // reverese_s를 반대로 뒤집는다.
if (s == reverse_s) { // s와 reverse_s가 같다면
cout << 1; // 1출력
}
else { // s와 reverse_s가 같지 않다면
cout << 0; // 0출력
}
}
split()
문자열을 특정 문자열 기준으로 쪼개어 배열화 시키는 함수 -> O(n)
참고 : https://kiveiru.tistory.com/83
[C++] Split
Split은 문자열을 특정 문자열을 기준으로 쪼개어서 배열화 시키는 함수의 의미로 사용된다. C++에서는 split() 함수를 지원하지 않기때문에 직접 구현해야한다. #include #include #include #include using names
kiveiru.tistory.com