C++에서 문자열 처리는 저수준의 C 스타일(char*)과 고수준의 C++ 스타일(std::string)로 구분된다.
두 방식의 차이점과 실수 방지법을 정리했다.
문자열 처리 방식 비교
-
C 스타일 문자열 (
char*): 문자의 배열로 취급하며 끝에 널 문자(\0)가 포함되어야 한다.
직접 메모리를 다루어 속도가 빠르지만 버퍼 오버플로우 위험이 있다. -
C++ 스타일 문자열 (
std::string): 객체지향적 접근을 제공한다.
메모리 관리가 자동화되어 있으며 문자열 결합이나 길이 측정 등 사용이 편리하다.
안전한 처리 방식 선택
문자열 처리는 빈번한 작업이므로 안전성이 중요하다.
널 문자 누락으로 인한 오류 등을 방지하기 위해 std::string의 활용이 권장된다.
원리 이해와 라이브러리 활용
성능이 극도로 중요한 시스템에서는 C 스타일이 필요할 수 있으나 일반적인 개발에서는 std::string을 사용하는 것이 적절하다.
저수준 원리를 이해하되 실제 개발에서는 표준 라이브러리를 활용해 견고한 코드를 작성해야 하는 것 같다.