[C++] string 클래스

Date:     Updated:

카테고리:

태그:

이 글은 C++ string 클래스를 공부하고 정리한 글입니다

코드 예시

string firstName = "Git";
string lastName = "Blog";
string fullName;

fullName = firstName + " " + lastName;    // Git Blog
fullName[4] = "g";

// 사전 상의 순서를 비교
if (firstName > lastName)
{
}

const char* cLine = fullName.c_str();
char letter = fullName.at(2);
fullName.at(4) = "k"

string mailHeader;
getline(cin, mailHeader);        // '\n' 문자를 만날 때까지 cin에서 문자들을 꺼내서 mailHeader에 저장
getline(cin, mailHeader, '@');   // '@' 문자를 만날 때까지 cin에서 문자들을 꺼내서 mailHeader에 저장

string

  • 힙메모리 할당이여서 느림
  • 메모리 단편화(memory fragmentation) 문제
  • 내부 버퍼의 증가는 멀티 쓰레드 환경에서 안전하지 않을 수도
  • 그래서, 여전히 sprintf와 함께 char[]를 매우 많이 사용

#include <string>

size(), length()

cout << firstName.size() << endl;    // 3
cout << firstName.length() << endl;    // 3
  • 문자열의 길이를 반환

c_str()

string line;
cin >> line;
const char* cLine = line.c_str();
  • 해당 string이 가지고 있는 문자 배열의 시작 주소를 가리키는 포인터를 반환

at()

char letter = firstName.at(1);
firstName.at(2) = "e"
  • 해당 문자열에서 주어진 위치에 있는 문자를 참조로 반환

#include <sstream>

istringstream

  • cin과 비슷 : 키보드 대신 string으로부터 읽어옴
  • sscanf()와 비슷

ostringstream

  • cout과 비슷 : 콘솔 대신 string에 출력함
  • sprintf()와 비슷


참조

포큐아카데미 C++ 언매니지드 프로그래밍



💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우 
  언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸

맨 위로 이동하기

Cpp 카테고리 내 다른 글 보러가기

댓글 남기기