[C++] string 클래스
카테고리: Cpp
태그: String
이 글은 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()
와 비슷
참조
💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸
댓글 남기기