목록C++/문법 및 메소드(STL) (4)
나만의 작은 도서관
입력으로 주어지는 한자리 숫자들이 붙어있어 하나의 숫자로 인식되는 경우나, 숫자로 된 문자열을 계산해야 하는 경우처럼 문자열을 숫자로, 숫자를 문자열로 변환(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 자료형으로 변환한다. 해..
여러가지 프로그래밍 언어를 배우다 보면 문자열에 대한 의심이 많아진다. 어떤 언어는 같고, 어떤 언어는 같지 않고... 언어에 따라 달라지니 문자열 판정은 늘 헷갈리는 문제이다. 이 글은 C++에서 서로다른 변수가 같은 문자열을 가지면 같은 판정인지 실험해본 내용을 담고있다. #include #include using namespace std; int main(void) { string str = "Hello"; string str2 = "Hello"; if (str == "Hello") cout
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{ ... } 문자열에서 파라미터로 입력한 문자열의 위치를 찾는다. 문자열을 찾았다면 찾은 문자열의 시작 위치를 반환하고, 문자열..