String 컨테이너는 C++ 표준 라이브러리이지만 STL에 포함시키진 않는다. 문자만을 원소로 저장하기 때문에 유사 컨테이너라 불린다.
코딩테스트를 포함한 여러 PS 문제에서는 문자열 조작이 다양하게 출시되기 때문에 String 컨테이너와 생성자, 멤버함수를 암기하면 편리하다.
# 생성자
string str;
string str("Hello");
string str("Hello",2); //해당 문자열에서 'He'만 기록
string str(5,'H');
string str(str2.begin(), str2.end()); // 반복자 2개 이용
# 멤버함수
str.front(); // 맨 앞 문자리턴
str.back(); // 맨 뒤 문자리턴
str.substr(i,j); //i부터 j까지 자른 string 부분 리턴
str.append(str); // 타 문자열 이어붙이기
str.assign(str); // 다른 문자열 대입
str.at(index); // [] 연산자와 동일
str.size(); // 원소의 갯수 리턴
str.length(); // 문자의 개수 리턴
아래 3개 함수는 유용하게 쓰이고 오버로딩 형식도 다양하기에 신경쓸 것!
str.replace(i, j, str2); // i번째 index부터 j개의 문자를 str2 문자열로 대체
// 대체되는 str2의 길이에 따라 str1의 길이가 확장됨
str.erase(i, j) // i 인덱스부터 j인덱스까지 지움
erase(iteraotr) // 반복자가 가르키는 문자
erase(iterator1, iterator2) // 반복자가 가르키는 범위 모두 제거
str.compare(str2) // 호출객체가 더 사전상 크면 1, 작으면 -1, 같으면 0
str.find(str2) // str2와 동일한 문자열 찾아 시작되는 인덱스 리턴
find(str2, i) // i번째 인덱스부터 str2 검색
#연산자
+= // push_back(), append() 함수와 동일
[] // 인덱스로 i번째 위치 문자리턴
= // 대입연산자
해당 멤버 함수를 모두 암기했다면 복습으로 String과 관련된 문제를 풀어보는게 좋다.
개인적으로 추천은 프로그래머스 레벨1 문제인 '신규 아이디 추천'
https://programmers.co.kr/learn/courses/30/lessons/72410
'Language > C++' 카테고리의 다른 글
[자료형] char 자료형으로 for 반복문을 실행하면 어떻게 될까? (0) | 2021.10.26 |
---|---|
Sort 함수의 커스터마이징, 특정 조건 정렬 (0) | 2021.10.04 |
C++의 캐스팅 연산자 (0) | 2021.03.25 |
템플릿 함수 사용시 유의사항 (0) | 2021.03.02 |
Has A 관계를 표현하는 클래스 활용 기법 - 포함(Containment) (0) | 2021.02.22 |