문자열(string)
기존 C 의 코드
char line[256];
cin.getline(line, 256);C++ 의 std::string 클래스
#include <string>
std::string firstName;
std::cin >> firstName;
string firstName = "POPE";
string fullName = "John Doe";
// 대입
fullName = firstName;
// 덧붙이기
fullName += " KIM";
// 비교연산 가능
if(firstName1 == firstName2)
{
}
// 사전 상의 순서를 비교
if(firstName1 > firstName2)
{
}
// 문자열의 길이를 반환
cout << firstName.size() << endl;
cout << fitstName.length() << endl;
// const char* : 해당 문자열을 변경할 수 없다.
// .c_str() : 해당 string 이 가지고 있는 문자 배열의 시작 주소를 가리키는 포인를 반환
string line;
cin >> line;
const char* cLine = line.c_str(); // const 를 사용하는 이유 :
// 내가 해당 문자열의 메모리를 관리하고 있는데, 다른 곳에서 해당 메모리에 관여하는 것은 말이 안된다.
// C 와 같이 인덱스에 접근할 수 있다.
string firstName = "POKE";
char letter = firstName[1];
firstName[2] = 'P';
// string 속의 문자에 접근하기
char letter = firstName.at(1);
fistName.at(2) = 'P';
// 한 줄 읽기
// -> 다음 조건을 만족할 때까지 스트림에서 문자들을 읽는다.
// 1. eof 를 만날때
// 2. 구분 문자를 만날때까지 (구분문자는 버려진다.)
string mailHeader;
getline(cin, mailHeader);
getline(cin, mailHeader, '@');그래서 왜 string 이 더 낫다는 거죠?
string 의 메모리 관리 방법은 상당히 복잡하다..
c_str() 을 다시한번 생각해보자
String 클래스를 직접 구현해보자
Last updated


