string을 int로 전환
int num = std::stoi(str);
int를 string으로 전환
string s = std::to_string(n);
특정 부분 잘라서 가져오기
std::string newstr1 = str.substr(0, 5);
str의 0부터 4 전까지를 가져와 string으로 만든다
string news = str.substr(0, str.find(" "));
공백 앞 단어를 news로 가져온다
특정 문자열 찾을 때 사용
찾고자 하는 문자열의 시작위치를 수로 반환한다
int index = s.find("a");
a가 맨 처음 등장하는 위치 리턴
int index = s.find("a",7);
7번째부터 a가 나오는 위치 리턴
존재하지 않다면 string::npos를 리턴한다
npos란 : -1를 가지는 상수로 못찾을 때 리턴됨!
(vector 헤더)
특정 위치의 문자들 삭제
str.erase(0,4);
( algorithm 헤더)
first부터 last 전까지 val과 값이 일치하는 원소를 제거함
ex)
remove(str1.begin(), str1.end(), ' ')
으로 사용하면 공백은 줄어드는데, 문자열 길이가 줄어드는 것은 아니다..
삭제 후 생성된 문자열 바로 뒤의 위치 iterator 반환함
따라서 erase와 함께 사용한다
s.erase(remove(s.begin(), s.end(),' ' ), s.end());
s 문자열에서 remove을 사용하고 남은 문자열 지워서 반환한다는 뜻
대소문자 변환시 사용
toupper(), tolower() 사용
ex)
char tmp = toupper(tmp);
지정 위치를 다른 문자열로 치환함
string ans = str1.replace(0,2,"zz");
str1의 처음, 두번째 빠지고 zz가 들어옴
#include <regex> 필요
지정한 문자열과 일치하는 모든 문자열을 제거한다
regex_replace.(대상문자열, regex(정규식), 치환문자열) 형식으로 사용
ex)
string str1 = regex_replace("aaa-bbb-ccc-ddd", regex("a"), "z");
모든 "a"가 "z"로 변환된다
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
using namespace std;
int main(){
string input = "abc def ghi";
// 문자열을 스트림화
stringstream ss(input);
vector<string> tmp;
string word;
// 스트림을 한 줄씩 읽어, 공백 단위로 분리한 뒤, 결과 배열에 저장
while (getline(ss, word, ' ')){
tmp.push_back(word);
}
}
algorithm 함수에 있음
reverse(str.begin(), str.end())
방식으로 사용
바로 출력하면 안됨!! (리턴값이 이상하다)
reverse 함수 써주면 해당 string이 뒤집히고, 이후에 string 사용해야함 ( being, end 사용해서 그런듯하다)