반응형
이번에는 CPP STL에서 제공하는 String에 대해서 알아보려 한다.
자바에서와 같이 아주 강력하다.
하지만 객체지향성이 자바보다는 덜해서
CPP에서 String은 java의 String a = new String(); 이런식으로 객체 형성을 안해도
String a;만 선언 후, a = "~~"이런식으로 적어도 알아서 malloc를 하여 스트링을 쌓아간다.
이 STL을 알게되면 코딩이 매우 편리해 지는것들이 한두가지가 아닌 듯 하다.
처음에는 STL에 대해 조금 부정적인 측면이 없지않아 있었다.
왜냐면 기본도 잘 모르면서 편리한것만 추구하려 하는 느낌이었지만,
현재의 트렌드라는 것이 존재하는 이상, 계속해서 char arr[]에 머물 수는 없다.
주석을 통해 설명 및 String에 관한 내용을 담아두었다.
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | #include <iostream> #include <string> using namespace std; int main() { /* String에 대해 공부하셨던 분들은 ctrl + f를 통해 검색을 하시면 좀더 편하게 함수 기능에 대한 예시를 찾을 수 있습니다. */ // 선언과 동시에 문자 대입 cout << "string a = \"hello\"" << endl; string a = "hello"; cout << a << endl << endl; // 선언 후 문자 대입 // 여기서 b = "~"이렇게 하면 초기화이고, b += "~"이렇게 하면 추가 대입이다. cout << "string b; b = \"world\"" << endl; string b; b = "world"; cout << b << endl << endl; cout << "b += \"you are in Crocus now\"" << endl; b += " you are in Crocus now"; cout << b << endl << endl; // 추가 대입 방법 (2) << 이 방식이 += 보다 속도면에서 더 빠르다. >> b.append(" Good Bye !"); cout << "b.append(\" Good Bye !\");" << endl << endl; cout << b << endl << endl; // 두 스트링 합치기 cout << "string c = a + b;" << endl; string c = a + b; cout << c << endl << endl; // 스트링 초기화 시키기 cout << "c.assign(10,1);" << endl; c.assign(10, '1'); cout << c << endl << endl; // 스트링 삭제 cout << "c.clear();" << endl; c.clear(); cout << "String c 의 내용 :: " << c << endl << endl; // 스트링에서 문자열 찾기 cout << "b.find(\"Crocus\")" << endl; cout << b.find("Crocus") << "번째부터 Crocus의 C가 시작합니다. " << endl << endl; // 스트링에서 특정 부분 지우기 // erase(시작점, 시작점에서 몇개 지우고싶나?); // 예를들어 b.erase(2,3)이면 b[2] ~ b[4] 까지 지운다. cout << "지워질 대상 :: " << b[2] << b[3] << b[4]<< endl << endl; b.erase(2, 3); cout << "지워진 후 :: " << b << endl << endl; // a 스트링 길이 구하기 cout << "a.length() :: " << a.length() << endl << endl; // a와 b 문자열 서로 바꾸기 cout << "swap(b,a);" << endl; swap(b, a); cout << "b :: " + b + " a :: " + a << endl << endl; // 부분 문자열 추출 // substr(a,b)로 지정하면 a부터시작해서 b가지를 보여준다. // 예시를 보면 0,3은 d[0], d[1], d[2]를 보여준다. cout << "string d = b.substr(0,2);" << endl; string d = b.substr(0, 3); cout << d << endl << endl; return 0; } // This source code Copyright belongs to Crocus // If you want to see more? click here >> | Crocus |
반응형
'Applied > 자료구조' 카테고리의 다른 글
배열을 이용한 이진 트리(Binary Tree) (0) | 2016.11.24 |
---|---|
비트셋(Bitset) STL 사용 방법 (0) | 2016.11.22 |
벡터(Vector) STL 사용 방법 (2) (0) | 2016.11.03 |
벡터(Vector) STL 사용 방법 (1) (2) | 2016.11.03 |
레드 블랙 트리(Red Black Tree) 개념 (0) | 2016.10.07 |