Publish:

태그: , ,

카테고리:


🤯 언리얼을 하기 위해 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 를 가리키도록 변경될 가능성을 방지하기 위해 사용되는 것

이슈 및 공부한 것을 기록해두는 개인 블로그 입니다. 댓글, 피드백 환영합니다 🙂

Update:

댓글남기기