728x90
반응형
C스타일 문자열
C스타일 문자열은 문자열의 맨 마지막에 끝을 의미하는 \0(null 문자)가 들어가게 됩니다.
따라서 실질적으로 사이즈에 + 1이 되어버립니다.
C스타일로 문자열을 다루는 방법은 2가지가 존재하는데, 다음과 같습니다.
그리고 위 두 방식은 메모리 공간을 점유하는 방식에서 차이가 나타나게 됩니다.
C스타일 문자열 - 포인터
실행 결과는 '같다'가 출력됩니다. 그 이유는 포인터를 통한 문자열은 메모리 공간에서 데이터 영역에 저장되어
서로 같은 주소값을 갖기 때문입니다.
C스타일 문자열 - 버퍼
실행 결과는 '다르다'가 출력됩니다. 이는 버퍼 형식의 문자열은 메모리 공간 중 스택 영역에 저장되어
서로 다른 주소값을 갖게 되기 때문입니다.
이처럼 C스타일의 문자열은 매우 복잡하고 다루기 어렵다는 문제점이 존재합니다.
그리고 C++에서는 이를 개선하여 std::string을 제공합니다.
C++ 스타일 문자열
std::string
string은 내부적으로 문자열을 처리해주어, 설계자는 문자열을 어떻게 다루어야 하는지만 신경써주면 됩니다.
단, string은 하나의 클래스로서 매개변수등으로 넘겨줄 때는 &을 통해 참조로 넘겨주어야 합니다.
C스타일 문자열때와는 달리 일일이 함수를 사용하지 않고도 연산이나 추가적인 작업이 가능한 것을 볼 수 있습니다.
728x90
반응형
'C++' 카테고리의 다른 글
람다 (0) | 2024.03.18 |
---|---|
함수 객체 (0) | 2024.03.11 |
함수 포인터 (0) | 2024.03.11 |
멀티바이트와 유니코드 (0) | 2024.02.26 |
algorithm 헤더 파일 (0) | 2024.02.26 |