목록문자열 (3)
나만의 작은 도서관
입력으로 주어지는 한자리 숫자들이 붙어있어 하나의 숫자로 인식되는 경우나, 숫자로 된 문자열을 계산해야 하는 경우처럼 문자열을 숫자로, 숫자를 문자열로 변환(casting) 해야하는 상황이 종종 발생한다. 이럴 때 유용하게 사용할 수 있는 함수가 stoi(), to_string()이다. stoi() // stoi(바꾸고자 하는 문자열) inline int stoi(const string& __str, size_t* __idx = 0, int __base = 10) { return __gnu_cxx::__stoa(&std::strtol, "stoi", __str.c_str(), __idx, __base); } String TO Integer의 약자로, 바꾸고자 하는 문자열을 int 자료형으로 변환한다. 해..
https://www.acmicpc.net/problem/25643 25643번: 문자열 탑 쌓기 인경이는 $N$개의 문자열을 쌓아서 문자열 탑을 완성하려고 한다. 탑을 완성하기 위해서는 모든 문자열을 한 층에 하나씩 아래에서부터 순서대로 쌓아 올려야 한다. 인경이는 문자열 탑의 꼭대 www.acmicpc.net 백준 25643번 문제와 같이 입력받은 문자열의 일부만이 필요한 경우가 있다. 이 때, 문자열의 일부를 반환하는 함수 substr()을 사용하여 원하는 문자열을 얻을 수 있다. substr() // pos: 문자의 위치, count: 반환할 문자열의 길이 basic_string substr(size_type pos = 0, size_type count = npos) const; 문자열의 pos번..
백준 문제를 풀다보면 문자열의 패턴을 변경하거나 찾는 문제를 볼 수 있다. 문자열 문제는 특징 상, 푸는 방식을 알아도 마땅한 함수를 알지 못하면 틀릴 수 밖에 없는 일명 "모르면 틀려야지" 문제 유형이다. 따라서, 문자열 문제를 풀기 위해선 위 두 함수에 대한 이해가 필요하다. replace(), find() 함수는 헤더파일에 존재하는 함수로, 이 두 함수를 사용하기 위해선 헤더파일을 추가해야 한다. find() // find(찾는 문자열) basic_string:: find(const _CharT* __s, size_type __pos, size_type __n) const{ ... } 문자열에서 파라미터로 입력한 문자열의 위치를 찾는다. 문자열을 찾았다면 찾은 문자열의 시작 위치를 반환하고, 문자열..