C++에서 문자열 배열 만들기
-
std::vector
컨테이너를 사용하여 C++에서 문자열 배열 만들기 -
std::array
컨테이너를 사용하여 C++에서 문자열 배열 만들기 -
string arr[]
표기법을 사용하여 C++에서 문자열 배열 만들기 -
char arr[][]
표기법을 사용하여 C++에서 문자열 배열 만들기
이 튜토리얼에서는 C++에서 문자열 배열을 만드는 방법에 대한 몇 가지 방법을 설명합니다.
std::vector
컨테이너를 사용하여 C++에서 문자열 배열 만들기
STL의std::vector
컨테이너는 문자열 배열을 만드는 데 사용할 수있는 일반 데이터 개체에 대한 동적 배열을 제공합니다. std::vector
의 요소는 연속적으로 저장됩니다. 따라서 오버 헤드없이 효율적으로 액세스 할 수 있습니다.
반면에std::vector
는 메모리 관리 효율성을 위해 추가 공간을 할당해야하기 때문에 일반적으로 다른 유형의 정적 배열보다 더 많은 스토리지를 차지합니다. 또한std::vector
는 다음 예제에 설명 된대로emplace_back
함수를 사용하여 내부 요소 구성과 같은 요소 조작에 유용한 멤버 함수를 제공합니다.
#include <iostream>
#include <string>
#include <vector>
using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::vector;
template <typename T>
void printVector(std::vector<T> v) {
for (const auto &item : v) {
cout << item << "; ";
}
cout << endl;
}
int main() {
vector<string> str_arr1 = {"Sunny Cove", "Willow Cove", "Golden Cove",
"Ocean Cove"};
printVector(str_arr1);
str_arr1.emplace_back("Palm Cove");
printVector(str_arr1);
return EXIT_SUCCESS;
}
출력:
Sunny Cove; Willow Cove; Golden Cove; Ocean Cove;
Sunny Cove; Willow Cove; Golden Cove; Ocean Cove; Palm Cove;
std::array
컨테이너를 사용하여 C++에서 문자열 배열 만들기
또는std::array
컨테이너를 사용하여 정적 배열을 선언 할 수 있습니다. 이러한 배열은 메모리 풋 프린트 효율성 측면에서 C 스타일 배열과 유사하며 접근성을위한 공통 멤버 함수를 제공합니다. std::array
컨테이너는 집계 초기화를 사용합니다. 다음 코드 샘플과 같이 공통 반복기 함수를 사용하여 반복하고std::copy
알고리즘을 사용하여 조작 할 수도 있습니다.
#include <array>
#include <iostream>
#include <iterator>
#include <string>
using std::array;
using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::string;
int main() {
array<string, 4> str_arr2 = {"Sunny Cove", "Willow Cove", "Golden Cove",
"Ocean Cove"};
array str_arr3 = {"Sunny Cove", "Willow Cove", "Golden Cove", "Ocean Cove"};
std::copy(str_arr3.begin(), str_arr3.end(),
std::ostream_iterator<string>(cout, "; "));
cout << endl;
return EXIT_SUCCESS;
}
출력:
Sunny Cove; Willow Cove; Golden Cove; Ocean Cove;
string arr[]
표기법을 사용하여 C++에서 문자열 배열 만들기
문자열 배열을 만드는 또 다른 유용한 방법은string
객체의 C 스타일 배열입니다. 이것은 인덱스 표기법으로 무작위로 액세스 할 수 있고 범위 기반for
루프로 반복 할 수있는 고정 요소 문자열 배열을 선언합니다. std::array
클래스에 포함 된대로 요소 조작 및 액세스 가능성을 위해 사용자 정의 함수를 구현해야합니다.
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main() {
string str_arr4[4] = {"Sunny Cove", "Willow Cove", "Golden Cove",
"Ocean Cove"};
for (auto &i : str_arr4) {
cout << i << "; ";
}
cout << endl;
return EXIT_SUCCESS;
}
출력:
Sunny Cove; Willow Cove; Golden Cove; Ocean Cove;
char arr[][]
표기법을 사용하여 C++에서 문자열 배열 만들기
또한 각 문자열에 최대 문자 수가 미리 정의 된 고정 길이의 문자열 배열을 할당 할 수도 있습니다. 이 메서드는 기본적으로 행렬의 단일 행에 각 문자열을 저장할 2 차원char
배열을 선언합니다. 이니셜 라이저 목록에 배열의 두 번째 차원보다 많은 문자가 포함 된 문자열이 포함 된 경우 문자열의 마지막 부분이 줄에 맞게 잘립니다.
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main() {
char str_arr5[4][20] = {"Sunny Cove", "Willow Cove", "Golden Cove",
"Ocean Cove"};
for (auto &i : str_arr5) {
cout << i << "; ";
}
cout << endl;
return EXIT_SUCCESS;
}
출력:
Sunny Cove; Willow Cove; Golden Cove; Ocean Cove;
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook