본문 바로가기

알고리즘

[2021.05 ~ 06 초] 문자열 라이브러리 총집합 (ing)

최근 두번의 코딩테스트를 응시하며 문자열 문제가 주로 출제되는 것을 알 수 있었다.

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 [개발자 지망생]