문자열 (string) 클래스
카테고리: Cpp
🤯 언리얼을 하기 위해 C++ 기억 되살리기 프로젝트
문자열 (string)
1. string 클래스
string은 클래스입니다… 배열이 아니고
1-1. 비교 연산자
<, >, <=, >=, ==, !=
1
2
3
4
5
6
if (firstName1 == firstName2)
{
}
if (firstName1 > firstName2) // 사전상의 순서대로 비교 (AB < AC)
{
}
1-2. size(), length(), c_str()
size(), length()
- 문자열의 길이 반환
c_str()
- const char* -> const char array의 첫번째 요소의 주소를 반환한다는 것
- 즉 해당 string이 가지고 있는 문자 배열의 시작 주소를 가리키는 포인터 반환
1
2
3
string line;
cin >> line;
const char* cLine = line.c_str();
2. sstream
string stream. string에서 들어오고 string으로 나간다는 것!
- std::istringstream
- cin 과 비슷, 키보드 대신 string으로부터 읽어옴
- sscanf()와 비슷
- std::ostringstream
- cout 과 비슷, 콘솔 대신 string에 출력
- sprintf()와 비슷
- cout, cin도 스트림!
- 그런데 자주 쓰이진 않음요
3. etc
- 힙(heap) 메모리 할당은 느림
- 메모리 단편화 문제 (조각조각… 연속된 메모리 공간이 없어서 가져올 수 없는 문제)
- 내부 버퍼 증가할 때 멀티스레딩 환경에서 동시에 접근하면, lock 안걸면 문제 생길 수 있고…..
const 변수는 오른쪽에서 왼쪽으로 읽어라
- char* const : 포인터가 const. 가리키는 대상의 값 변경이 가능하지만 포인터를 변경할 순 없음 (다른 주소의 문자열을 가리키도록 변경할 수 없음)
- const char* const : 값과 포인터 모두 변경 불가능한 문자열
- const char* : pointer to const char. 포인터가 다른 const char 를 가리키도록 변경될 가능성을 방지하기 위해 사용되는 것
댓글남기기