티스토리 뷰
/*
string 사용하기
생성 1 : string str("abcdefg");
--> 바로 생성하기
생성 2: string str1;
str1 = "abcdefg";
--> string 선언 후 값 주기
※ string 을 다루는 클래스로 C 에서의 char와는 또 다르다.
문자열 긑에 null 이 들어가지 않는다.
멤버함수가 많으므로 그때 그때 마다 필요한것을 가져다 쓰자.
--------------- 예시시작 입니다. --------------------------
string str1 = "Arin";
string str2 = "DSC";
1) string 인자 접근하기.
---> str1.at(index);
index 에는 숫자가 들어가게 되고 해당위치 에 해당하는 문자를 반환해준다.
index 는 0부터 시작이다.
만약에 index 가 해당 string 의 범위를 벗어 난다면 예외의 값을 반환한다.
---> str1.operator[index]
c++ 의 string 에서는 배열처럼 대괄호를 이용하여 string 인자에 접근할수있다.
at 과 다른점은 string 의 index 범위를 검사하지 않기 때문에 at 보다 빠르게 동작한다.
하지만 예외를 반환해주지 않는다. 시작은 0 부터이다.
---> str1.front()
string 의 맨 앞 인자를 반환한다.
strl.front();
---> A
---> str1.back();
string의 맨 뒤 인자를 반환한다.
str1.back();
---> n
2) string size 관련 멤버함수
---> str1.size();
string 의 사이즈를 반환해준다. c 에서의 strlen 이 생각난다.
---> str1.length();
string 의 길이를 반환한다. size() 함수와 같다고 생각해주자
---> str1.capacity();
string 객체에 할당된 메모리 크기를 반환해준다.
---> str1.resize(n);
string을 n의 크기로 만든다.
만약 크기가 원래 사이즈 보다 작다면 남은 스트링을 버린다
원래사이즈보다 크다면 빈공간으로 채운다.
---> str1.shrink_to_fit();
낭비되고 있는 capacity 를 string 의 사이즈 에 맞게 줄여주는 멤버함수이다.
---> str1.clear();
string 에 들어있는 문자열을 지우는 함수이다. 이때 size와 length 는
0 이되고 capacity 는 그대로 남게된다.
---> str1.empty();
string 이 비어있는지 확인 하는 함수이다 .비어있다면 true 를 반환해준다.
3) string 을 이용하여 여러 작업해보기
---> str1.c_str();
C++ 스타일의 string 문자열을 C스타일의 문자열로 변경해주는 함수이다.
---> str1.substr();
string index 에서부터 len만큼 잘라서 반환하는 함수이다. string 을 잘라서 반환해준다.
type 은 unsigned int 이다 값으로는 -1 이 오게 되는데 이때 언더flow가 일어나서 가장큰 최대값이 반환된다. 즉 그대로 반환되게 되는것이다.
예를 들어 str1.substr(); 이라 하면 "Arin" 이 나오게 되고,
str1.substr(1); 이라 하면 index 0 부터 세기 시작해서 1번째 인자부터 끝까지 문자열을 출력해준다. "rin" 이 나온다.
str1.substr(1,1); 이라하면 r 을 반환해준다. 1 번째 인자부터 1 의 길이만큼 문자열을 반환해준다.
---> str1.replace();
함수를 호출하는 문자열의 index 위치에서 len 길이까지의 범위를 매개변수로 들어온str 전체로 대체 하는 함수이다.
예를 들어 : str1.replace(2,2,str2); 라 하면
"Arin" 의 2번째 인자부터 2개를 str2 로 대체한다.
"ArDSCDSC" 같은 문자가 나오게된다.
---> str1.compare();
매개변수로 들어온 str을 비교하여 같으면 0을 반환하고 다르면 0 이 아닌 값을 반환하는 함수이다.
호출한 string 값이 매개변수로 들어온 string의 값보다 작다면(사전순으로 먼저 나올때) -1 을 반환한다.
호출한 string 값이 매개변수로 들어온 string의 값보다 크다면 (사전순으로 느리다) 1 을 반환다.
c에서의 strcmp의 반환값과 동일다 위치도 동일!
---> str1.copy();
기본형은 size_t copy(char *arr size_t , size_t len , size_t index ) 이다
첫번째 매개변수 : 호출한 문자열 첫번째 매개변수 문자열에 복사하는 함수이다. char* 인것을 보아
C에서의 문자열 타입을 받는다.
두번째 매개변수 : 복사할 문자열의 길이를 나타낸다.
세번째 매개변수 : 복사를 시작할 위치이다.
--->예시 설명
char arr[10] ; 이라는 빈 배열을 미리 만들어 놓는다.
int arrLen - str1.copy(arr,3,5); // 5번째 index 부터 3의 길이만큼 복사한다는 의미다.
---> str1.find();
매개변수로 들어온 문자열과 호출한 문자열 중에 일치하는게 있는지 확인하는 함수이다.
만약 일치하는 문자열이 있다면 일치하는 부분의 index를 반환해준다.
첫번째 매개변수자리는 찾을 문자열
두번째 매개변수 자리는 몇번째 인자부터 찾을것이다 라는 의미이다.
---> str1.push_back( s )
함수를 호출하는 string 의 맨뒤에 문자 s 를 더하는 함수이다.
str1.push_back('u'); "Arin" ---> "Arinu" 가 된다.
---> str1.pop_back();
함수를 호출하는 string 의 맨뒤에 문자 s 를 제거해주는 함수이다.
4) string iterator 종류
---> str1.begin() ;
문자열의 첫번째 문자를 가리키는 반복자 (iterator 포인터) 를 반환한다.
---> str1.end() ;
문자열의 마지막의 바로 다음을 가리키는 반복자(iterator 포이턴) 를 반환한다.
5) string 의 기타 멤버함수
---> swap(str1,str2);
str1 과 str2 를 바꾸는 것이다.
+ operator str1+= str2 ; 이런식으로 쓴다 Arin ---> ArinDSC 가 된다.
*/
--- 개발자 지망생님의 블로그 에서 학습한 내용요약 ---
'C++' 카테고리의 다른 글
C++ map 컨테이너 __ map container (0) | 2019.07.18 |
---|
- Total
- Today
- Yesterday
- 사이클
- 플로이드
- 그리디알고리즘
- 그래프
- #스페인어 #스페인어인강 #스페인어공부 #시원스쿨스페인어
- 라오킹전사
- JavaSwing
- 정렬
- 이분 매칭
- A
- 라이즈오브킹덤즈
- CSS
- BFS
- HTML
- 백트래킹
- dfs
- 다익스트라
- 이분매칭
- stri
- KVK4
- greedy
- 사이크
- 그리디
- 백트레킹
- php
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |