2017. 2. 7. 13:30ㆍIT-개발/STL 및 Boost
(펌) : http://makerj.tistory.com/127#string간의-문자열-비교
string 생성
방법1
string myString = "abcd";
단, 이 방식으로는 'a'
와 같은 char
로 생성이 불가능하다. 따라서 이 한계를 극복하려면 방법 2를 써야한다.
방법2
string 확장, 문자열 추가
방법1: += 연산자 이용
방법2: append() 멤버 함수 이용
string 길이
size()와 length()는 이름만 다를 뿐 같은 일을 하는 멤버 함수다.
메모리 관련
capacity()
capacity()
는 해당 문자열이 재할당을 하지 않고도 저장할 수 있는 문자열의 길이를 반환한다.
문자열은 문자열이 늘어났을 때, 현재 capacity보다 클 경우 더 큰 메모리를 사용할 수 있도록 재할당된다.
max_size()
myString.max_size()
는 최대한 메모리를 할당했을 경우, 저장할 수 있는 문자열의 길이를 반환한다.
string의 특정 위치 문자 받기(charAt)
해당 위치의 char
를 반환한다.
java의 String.charAt()
과 같다.
string에 있는 특정 문자 탐색
world! 문자열이 발견된 첫 위치를 반환한다.
탐색에 실패할 경우는 if 문에서 볼 수 있듯이 string::npos
를 반환한다.
string간의 문자열 복사
dst에는 같은 내용이 복사되어 들어간다.
얕은 복사가 아니다. 깊은 복사다. 즉, 복사 후에 src의 내용이 변경된다고 해도 dst의 내용에는 아무 영향을 끼치지 않는다.
string간의 문자열 비교
string의 문자열 대체하기 (replace기능)
http://stackoverflow.com/a/14678964/2050087 참조
Immutable Replace
원본 문자열에는 아무 영향을 끼치지 않는다. 변경된 문자열은 함수의 반환값으로 돌아온다.
Mutable Replace
원본 문자열을 수정한다. 속도가 우선일 경우 사용하자.
타입 변환
문자를 다른 타입으로 변경해야 할 필요가 있는 경우는 흔하다. 그래서 C++11에 들어 표준 라이브러리에 기본적인 타입 변환 기능이 추가됐다.
개발환경이 C++11을 지원해야 한다.
'IT-개발 > STL 및 Boost' 카테고리의 다른 글
STL - sort (2) (펌) (0) | 2019.01.14 |
---|---|
STL - string - 참고(2) (0) | 2017.02.07 |
Visual C++ 2010 - error C2825: '_Fty': '::'가 뒤에 나오면 클래스 또는 네임스페이스여야 합니다. (0) | 2015.10.21 |
STL std::function 기반 콜백함수 구현 (0) | 2015.10.20 |
연산자 오버로딩 - 전위, 후위 차이 (0) | 2015.10.19 |