728x90

황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다!

https://search.shopping.naver.com/book/catalog/32436115747

 

C++ Programming : 네이버 도서

네이버 도서 상세정보를 제공합니다.

search.shopping.naver.com

string 클래스 개요

  • C-스트링은 C언어에서 사용해오던 전통적인 문자열, '\0'로 끝나는 문자 배열을 문자열로 취급하는 방법
  • string은 C++ 표준 라이브러리에서 제공하는 클래스, 문자열을 객체로 다룬다.
  • string은 문자열을 저장하는 버퍼와 함께, 문자열을 다루는 다양하고 유용한 함수와 연산자들을 멤버로 가지고 있다.
#include <string>
using namespace std;
  • 특히 C-스트링의 단점을 보완하는 문자열의 크기에 맞춰 스스로 메모리 크기를 조절한다는 장점이 있다.
string str = "I love "; // str은 'I', ' ', 'l', 'o', 'v', 'e', ' ' 7개로 저장
str.append("C++"); // str에 추가된다.

 


string 객체 생성 및 출력

생성
  • string 클래스의 생성자를 이용하여 다양하게 문자열 생성 가능
string str; // 빈 문자열을 가진 스트링 객체
string address("우리집") // 문자열 리터럴로 초기화
string copyAddress(address); // address를 복사한 copyAddress 생성

 

출력
cout << address << endl; // "우리집" 출력

 

string 객체의 동적 생성
  • 스트링 객체 역시 new와 delete 연산자를 이용하여 동적으로 생성하고 반환 가능
string *p = new string("C++"); // 스트링 객체 동적 생성
cout << *p; // "C++" 출력
p->append("최고"); // p가 가리키는 스트링이 "c++ 최고"가 됨
cout << *p; // "C++ 최고" 출력
delete p; // 스트링 객체 반환

 

string 클래스의 주요 생성자
  • string() : 빈 문자열을 가진 스트링 객체 생성
  • string(const string& str) : str을 복사한 새로운 스트링 객체 생성
  • string(const char* s) : C-스트링 s의 문자열을 복사하여 스트링 객체 생성
  • string(const char* s, int n) : 문자 배열 s에서 n개의 문자를 복사하여 스트링 객체 생성 

 

문자열 입력
string name;
cin >> name;
  • cin >> 을 이용하여 키보드로부터 string 객체에 입력
  • >> 연산자는 공백 문자가 입력되면 그 앞까지 하나의 문자열로 다룬다.
  • 따라서, <string> 헤더 파일에 선언된 getline() 전역 함수를 이용하면 됨
string name;
getline(cin, name, '\n'); // '\n'을 만날 때까지 키보드(cin)로부터 문자열을 읽어 name에 저장
  • 이전에 설명한 cin.getline()과 다르다. 
  • getline()의 첫 번째 인자에는 cin, 두 번째 인자에는 string 객체, 세 번째 인자에는 문자열의 마지막을 표시하는 구분 문자(delimeter)를 준다.
주요 멤버 함수

  • 또한, =, s [], +, +=, ==, !=, <, > 등의 연산자도 존재한다.
728x90

'Programming Language > C++' 카테고리의 다른 글

[C++] 참조에 의한 호출, call by reference  (0) 2023.12.04
[C++] 함수와 참조  (0) 2023.12.03
[C++] this 포인터  (1) 2023.12.01
[C++] 동적 메모리 할당 및 반환  (1) 2023.11.30
[C++] 객체 포인터와 객체 배열  (0) 2023.11.30