C++에서 문자열 배열 만들기

Jinku Hu 2023년10월12일
  1. std::vector컨테이너를 사용하여 C++에서 문자열 배열 만들기
  2. std::array컨테이너를 사용하여 C++에서 문자열 배열 만들기
  3. string arr[]표기법을 사용하여 C++에서 문자열 배열 만들기
  4. char arr[][]표기법을 사용하여 C++에서 문자열 배열 만들기
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;
작가: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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

관련 문장 - C++ Array