C++에서 문자열 배열 정의하는 방법
이 글에서는 C++에서 문자열 배열을 정의하고 사용하는 방법에 대해 자세히 살펴보겠습니다.
C 언어에는 별도의 문자열(string) 타입이 없었습니다. 대신 문자 배열(char array)을 사용해 문자열을 직접 만들어야 했으며, 여러 개의 문자열을 담으려면 2차원 문자 배열을 생성하고 각 행(row)마다 하나의 문자열을 저장하는 방식으로 구현해야 했습니다.
하지만 C++에는 std::string이라는 전용 클래스가 제공됩니다. 이 클래스의 객체를 활용하면 문자열 데이터를 훨씬 편리하고 효율적으로 다룰 수 있으며, 일반 객체 배열을 생성하듯이 손쉽게 문자열 배열도 만들 수 있습니다.
아울러 C++ 표준 라이브러리(STL)의 vector 컨테이너를 사용해 문자열 배열을 구현하는 방법도 함께 알아보겠습니다. vector는 내부적으로 동적 할당된 배열을 사용하므로, 크기가 고정된 일반 배열과 달리 요소를 자유롭게 추가하거나 제거할 수 있다는 큰 장점이 있습니다.
방법 1: string 객체 배열 사용
가장 기본적인 방법은 string 타입의 배열을 선언하고 초기화 목록으로 값을 지정하는 것입니다. 아래 예제를 확인해 보세요.
예제 코드
#include<iostream>
using namespace std;
int main() {
string animals[4] = {"Elephant", "Lion", "Deer", "Tiger"}; // string 타입의 배열
for (int i = 0; i < 4; i++)
cout << animals[i] << endl;
}
실행 결과
Elephant Lion Deer Tiger
위 코드에서는 크기가 4인 string 배열을 선언하고 네 가지 동물 이름으로 초기화했습니다. 그런 다음 반복문을 사용해 인덱스 0부터 3까지 순회하며 각 문자열을 출력합니다.
방법 2: vector 컨테이너 사용
vector는 C++ 표준 라이브러리에서 제공하는 동적 배열 컨테이너입니다. 프로그램 실행 중에 크기가 늘어나거나 줄어들 수 있어, 배열의 크기를 미리 알 수 없는 상황에서 특히 유용합니다. push_back() 함수로 요소를 추가하고, 일반 배열처럼 대괄호([]) 연산자로 각 요소에 접근할 수 있습니다.
예제 코드
#include<iostream>
#include<vector>
using namespace std;
int main() {
vector<string> animal_vec;
animal_vec.push_back("Elephant");
animal_vec.push_back("Lion");
animal_vec.push_back("Deer");
animal_vec.push_back("Tiger");
for (int i = 0; i < animal_vec.size(); i++) {
cout << animal_vec[i] << endl;
}
}
실행 결과
Elephant Lion Deer Tiger
vector를 사용하면 size() 함수로 현재 저장된 요소의 개수를 바로 확인할 수 있어 반복문 작성도 더욱 안전하고 편리합니다.
정리
- 고정된 크기의 문자열 집합이 필요하다면 →
string배열 사용 - 유동적으로 크기를 변경해야 한다면 →
vector<string>사용
두 방법 모두 실무에서 널리 활용되므로, 상황에 맞게 적절히 선택하여 사용하시면 됩니다.