최근 두번의 코딩테스트를 응시하며 문자열 문제가 주로 출제되는 것을 알 수 있었다.
C++ 문자열에 대한 암기를 해보자.
1. string 사용법
2. string size
3. string
♣ string 인자 접근, access 관련
▶ str1.at(index)
함수 원형 : char& at (size_t index);
함수 설명 : index(=인덱스) 에는 숫자가 들어가게되고, 해당 위치(n)에 해당하는 문자를 반환합니다.
index는 0부터 시작합니다. index가 string의 범위를 벗어나게 되면 예외를 뱉습니다.
함수 예시 : str1.at(0); //"BlockDMask" -> 'B'를 리턴합니다.
▶ str1.operator[index]
함수 원형 : char& operator[](size_t index);
함수 설명 : C++ string은 일반 배열처럼 대괄호를 이용해서 string 인자에 접근할 수 있습니다.
at과 다른점은 string의 index(인덱스)범위를 검사하지 않기 때문에 at 함수보다는 빠릅니다. 하지만 예외를 뱉어내지 않습니다.
index는 0부터 시작합니다. index 번째 인자를 반환합니다.
함수 예시 : str1[1]; //"BlockDMask" -> 'l'를 리턴합니다.
▶ str1.front();
함수 원형 : char& front();
함수 설명 : C++11부터 가능합니다. string의 맨 앞 인자를 반환합니다.
함수 예시 : str1.front(); //"BlockDMask" -> 'B'를 리턴합니다.
▶ str1.back();
함수 원형 : char& back();
함수 설명 : C++11부터 가능합니다. string의 맨 뒤 인자를 반환합니다.
개인적으로 front는 모르겠지만 back은 참 좋은 멤버변수인것 같습니다. 우리가 string의 첫번째 인자를 가지려고 할때는 str1[0]을 인덱스로 집어 넣으면 되지만 끝부분은 대부분 다른 멤버변수에 저장을 해놓거나 잘 모르는 경우가 많습니다. 그렇기 때문에 back() 을 이용하면 편하게 맨 뒤 인자를 가지고 올 수 있습니다.
▶ str1.size();
함수 원형 : size_t size() const;
함수 설명 : string의 사이즈를 반환합니다.
함수 예시 : str1.size(); // "BlockDMask" 이므로 10을 반환합니다.
▶ str1.length();
함수 원형 : size_t length() const;
함수 설명 : string의 길이를 반환합니다. size() 함수와 같다고 생각하면 됩니다.
함수 예시 : str1.length(); // "BlockDMask" 이므로 10을 반환합니다.
▶ str1.clear();
함수 원형 : void clear();
함수 설명 : 스트링에 들어있는 문자열을 지우는 함수입니다. 이때, size와 length는 0이 되고, capacity는 그대로 남게 됩니다.
함수 예시 : str1.clear(); //"BlockDMask" -> "" 이 됩니다. size와 lenth는 0이 되고, capacity는 15 그대로 입니다. (메모리 해제가 아닌 문자열 값들을 삭제하는것)
▶ str1.empty();
함수 원형 : bool empty() const;
함수 설명 : 스트링이 비었는지 확인하는 함수입니다. 비었으면 true를 반환합니다. 비었음의 기준은 size, length가 0인 것 입니다. capacity와는 관계가 없습니다.
함수 예시 : if(str1.empty()) { return true; } //이런식으로 비었는지 확인하면됩니다. clear를 사용하고 empty를 사용하면 당연히 true 겠죠?
▶ str1.push_back(c)
함수 원형 : void push_back(char c);
함수 설명 : 함수를 호출하는 스트링의 맨뒤에 문자 c를 더하는 함수 입니다.
함수 예시 : str1.push_back('a'); //"BlockDMask" -> "BlockDMaska" 'a'가 하나 더해집니다.
▶ str1.pop_back()
함수 원형 : void pop_back()
함수 설명 : 함수를 호출하는 스트링의 맨뒤에 있는 문자 하나를 없애는 함수 입니다.
함수 예시 : str1.pop_back(); // "BlockDMask" -> "BlockDMas" 이렇게 k가 하나 빠집니다.
출처: https://blockdmask.tistory.com/338 [개발자 지망생]
'알고리즘' 카테고리의 다른 글
[C++] 입출력 (cin vs getline) (0) | 2021.07.19 |
---|---|
[그리디] 큰 수의 법칙 / [구현] 상하좌우 풀기 전 getline() (0) | 2021.07.14 |
[2021.04.08] 스택, 큐 (0) | 2021.04.08 |
[프로그래머스(완전탐색)] 수포자 (0) | 2021.03.28 |
[BOJ_9663] 백트래킹 (N-Queen) (0) | 2021.03.16 |