▶필요성
문자열을 다루는 일은 흔하게 발생한다.
문자열을 다룰 때 string 클래스의 멤버 함수, 멤버 변수들을
잘 알고 있으면 많은 도움이 될 것이다.
아래의 KeyPoint는 코드를 쉽게 이해하는데 도움을 주기 위해 작성되었다.
▶KeyPoint
1. #include<string>
: string 라이브러리를 추가해주어야 한다.
2. find()의 반환 값은
· 찾은 경우 = 찾은 문자열의 시작 인덱스
· 찾지 못한 경우 = string::npos
3. substr()의 반환 값은
인자로 들어간 인덱스 범위에 맞는 문자열을 가진 string 객체이다.
5. substr()의 인자값의 범위는 [ x, y ) 이다.
(x는 포함, y는 포함X)
4. size()의 반환 값은
문자열의 NULL문자가 위치한 인덱스이다.
▶SourceCode (예시)
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 | #include<iostream> #include<string> using namespace std; int main() { // str1 : "hello world !" string str1("hello world !"); cout << "str1: " << str1 << endl << endl; cout << "str1.substr(0, 0): " << str1.substr(0, 0) << endl;// "" cout << "str1.substr(0, 1): " << str1.substr(0, 1) << endl;// "h" if (str1.find("z") == string::npos) { // 서브 스트링으로 "z"를 찾지 못한 경우 cout << "str1.find(\"z\"): " << str1.find("z") << endl; cout << "string::npos: " << string::npos << endl; } if (str1.find("ll") != string::npos) { // 서브 스트링으로 "ll"을 찾은 경우 cout << "str1.find(\"ll\"): " << str1.find("ll") << endl; cout << "------------------------" << endl << endl; } //---------------------------------------------------------------------- // str2 : "good morning !" string str2("good morning !"); // 문자 개수 (NULL 인덱스값) int size = str2.size(); cout << "str2: " << str2 << endl << endl; cout << "size: " << size << endl; for (int i = 0; i < size; i++) { // 마지막 문자 하나 string str_end = str2.substr(size - 1, size); // 마지막 문자 하나만 제외 string str_begin = str2.substr(0, size - 1); str2 = str_end + str_begin; cout << str2 << endl; } cout << "---------------" << endl; getchar(); return 0; } | cs |
▶실행 결과
'□ 이론 > 기타' 카테고리의 다른 글
JSP 개념 정리 (0) | 2019.04.17 |
---|---|
JavaScript 기초 개념 정리 (0) | 2019.03.29 |
스프링 프레임워크 기본 개념 정리 (0) | 2019.03.27 |
[Java] 배열(array) (0) | 2019.01.06 |
StringTokenizer class (스트링 토크나이저 클래스) (0) | 2018.11.12 |