int num = stoi(str)
string -> intstring str = to_string(num)
int -> stringchar c = 'a';
string s;
s += c; //s="a"가 됨
string s;
s += 'a' + 'b'; //(x) 이런 식으로 char형을 한꺼번에 더하면 "ab"가 되지 않음!
s += 'a';
s += 'b'; //(o) 이런 식으로 각각 더해야 "ab"가 됨!
char형 문자가 숫자문자(ex."1")일 때
int num = c - '0';
char c = str[2];
이때 문자 1개는 char형! (string 아님)
str.length();
str.size();
string str2 = str1.substr(n, m);
인덱스n(0부터 시작)부터 m개의 문자 추출string str2 = str1.substr(n);
인덱스n(0부터 시작)부터 끝까지 추출str1 + str2;
str.insert(n, str2);
인덱스n 앞에 str2 문자열을 삽입
str
이 수정됨str.pop_back();
맨 뒤의 문자 제거
str.erase(n, m);
인덱스n(0부터 시작)부터 m개의 문자 지움
str.erase(n);
인덱스n부터 끝까지 지움
str
이 수정됨 >
, <
를 통해 사전순서 비교
string s;
getline(cin, s); //공백 포함 문자열 입력받기
💡 앞에 cin을 사용한 적이 있는 경우 별도 처리 필요!
버퍼에 정수값을 입력한 뒤 누른 엔터('\n'
)가 남아있어 getline()
에 들어가기 때문
int n;
string str;
cin >> n;
cin.ignore(); //이거 넣어줘야 함
getline(cin, str);
cin
을 통한 입력은 공백을 기준으로 입력을 끊기 때문에 "Hello World!"와 같이 띄어쓰기가 포함된 문자열을 받을 수가 없음
pair<string, int> input[1000];
이 형태로 전역변수 선언 시 NeverBeNull 런타임 에러 났음(vscode에서는 돌아가는데 백준에서는 에러남)
구글링 해보니까 문자열 때문에 저 오류가 뜨는 것 같으니... 문자열 사용 시
그냥 vector형으로 지역변수 선언하고 resize로 사이즈 정해서 쓰자!