전문가를 위한 C++정리 73
-
2.1.4 로우 문자열 리터럴 로우 문자열 리터럴(raw string literal)에서는 \t, \n과 같은 역슬래시를 통한 이스케이프 시퀸스를 일반 문자열로 취급한다. string str = "Hello "World"!"; // 컴파일에러 만약, 문자열 리터럴을 위와같이 작성하면 컴파일 에러가 발생한다. 보통의 문자열에서 따옴표를 표현하려면 다음과 같이 이스케이프 시퀸스를 사용해야 한다. string str = "Hello \ "World\"!"; 로우 문자열 리터럴을 이용하면 이스케이프 시퀸스를 사용하지 않아도 된다. 로우 문자열 리터럴은 R"( 로 시작하고 )" 로 끝난다. string str = R"(Hello "World"!)"; 로우 문자열 리터럴은 여러줄에 걸쳐 작성될 수도 있다. 예를들어..
-
2.1.3 C++ string 클래스 C++는 표준 라이버리를 통해 훨씬 진보된 문자열을 제공한다. C++의 std;:string 클래스는 에서 제공하는 문자열 처리 기능을 대부분 지원하면서, 제대로만 사용한다면 메모리 할당 부분까지 대신 관리해준다. string 클래스는 헤더 파일에 정의되어 있다. C스타일 문자열의 문제점 C++ strnig의 필요성을 이해하려면, C스타일 문자열의 장점과 단점을 알아야 한다. 장점 단순하다. 기본문자 타입과 배열구조만 사용한다. 가볍가. 제대로 사용하면 꼭 필요한 메모리 공간만 점유한다. 저수준이다. 로우 메모리상에서 쉽게 조작하거나 복제할 수 있다. C 프로그래머에게 매우 익숙하다. 단점 범용 문자열 데이터 타입이므로 고급 작업을 하기에는 너무 많은 노력이 추가로 ..
-
-
문자열은 프로그램을 작성할 때 거의 항상 사용한다. C언어는 문자열 표현을 위해 null로 종결되는 단순한 ASC2 문자열을 사용할 수 밖에 없다. 그런데 단순한 문자 배열로 문자열을 표현하면, 버퍼 오버플로 같은 보안 위험 등 여러가지 문제가 발생한다. C++ STL은 더 안전하고 사용하기 쉬운 std::string 클래스를 제공하여, C스타일 문자열의 단점을 피할 수 있다. 2.1 동적 문자열 프로그래밍 언어에서 문자열은 최 우선순위로 지원되는 기능이다. 자유자재로 바꾸는 크기는 물론, 부분추출, 추출하여 바꾸기 등의 여럭 고급 기능을 지원한다. 하지만, C에서의 문자열 지원은 상당히 부실한데, 단순히 문자의 배열만 존재하고, 편리하게 사용할 수 있는 문자열 데이터 타입이 따로 존재하지 않는다. 문자..
-
프로그래밍의 코드작성 기초에 대해 다루기 때문에, 한번에 축약하여 작성한다. https://github.com/ChoinCola/C-STLSubProject1 GitHub - ChoinCola/C-STLSubProject1 Contribute to ChoinCola/C-STLSubProject1 development by creating an account on GitHub. github.com C++프로그램 개발 프로젝트로, 직원 데이터 베이스 프로그램을 개발해볼 것 이다. 이 프로그램은 회사에 속한 종업원들의 정보를 관리한다. 유연해야하며 유용한 기능을 담고있어야 한다. 가져야하는 기능은 다음과 같다. 종업원 추가 종업원 삭제 종업원의 승진 과거부터 현재까지 전체 종업원 목록 열람 현재 재직 중인 종..
-
1.4 표준 라이브러리 C++는 유용한 클래스를 표준 라이브러리로 제공한다. 표준 라이브러리에 정의된 클래스를 이용하면 중복해서 같은 기능의 클래스를 개발하는 부담을 피할 수 있다. 뿐만 아니라 표준 라이브러리 클래스들은 오랜 시간 많은 사람들에 의해 검증되었기 때문에, 오류의 가능성또한 적다. 성능 최적화 또한 충분히 되어있기 때문에, 같은 기능의 클래스 라면 개발자가 직접 작성하는 것 보다 더 뛰어나다. 표준 라이브러리에서 제공하는 기능은 매우 방대하다. C++을 처음 시작할 때 표준 라이브러리에 어떤 기능이 있고 내가 목적하는 프로그램에 어떻게 쓰일 수 있을지 먼저 알아보는 것이 좋다. 특히 C를 먼저 사용하던 프로그래머는, C++를 사용하면서도 C에서 사용하던 습관대로 문제를 해결하려할 수 있는데..