logo

C++의 문자열 배열 – 생성하는 5가지 방법

C++에서 문자열은 일반적으로 NULL 문자 '로 끝나는 문자의 배열(또는 참조/지정)입니다. '. 문자열은 1차원 문자 배열이고, 문자열 배열은 2차원 문자 배열입니다.각 행에는 문자열이 포함되어 있습니다.

다음은 C++에서 문자열 배열을 만드는 5가지 방법입니다.

  1. 사용 포인터
  2. 사용 2차원 배열
  3. 사용하여 문자열 클래스
  4. 사용하여 벡터 클래스
  5. 사용하여 배열 클래스

1. 포인터 사용

포인터는 주소를 상징적으로 표현한 것입니다. 간단히 말해서 포인터는 변수의 주소를 저장하는 것입니다. 이 방법에서는 문자열 리터럴의 배열이 포인터 배열에 의해 생성됩니다.각 포인터는 특정 문자열을 가리킵니다.



예:

C++




// C++ program to demonstrate> // array of strings using> // pointers character array> #include> // Driver code> int> main()> {> >// Initialize array of pointer> >const> char>* colour[4]> >= {>'Blue'>,>'Red'>,>'Orange'>,>'Yellow'> };> >// Printing Strings stored in 2D array> >for> (>int> i = 0; i <4; i++)> >std::cout << colour[i] <<>' '>;> >return> 0;> }>

재귀 자바

>

>

산출

Blue Red Orange Yellow>

설명:

  • 문자열 수는 고정되어 있지만 반드시 그럴 필요는 없습니다. 4는 생략될 수 있으며 컴파일러는 올바른 크기를 계산합니다.
  • 이러한 문자열은 상수이며 해당 내용은 변경할 수 없습니다. 문자열 리터럴(문자 그대로 인용된 문자열)은 메모리의 읽기 전용 영역에 존재하기 때문에 프로그램을 중단시킬 수 있는 원치 않는 액세스를 방지하려면 여기에 const를 지정해야 합니다.

2. 2D 배열 사용

2차원 배열은 데이터를 표 형식으로 저장하는 가장 간단한 형태의 다차원 배열입니다. 이 방법은 모든 문자열의 길이를 알고 있고 특정 메모리 공간이 필요한 경우에 유용합니다. 문자열을 위한 공간은 단일 블록에 할당됩니다.

예:

C++




// C++ program to demonstrate> // array of strings using> // 2D character array> #include> // Driver code> int> main()> {> >// Initialize 2D array> >char> colour[4][10]> >= {>'Blue'>,>'Red'>,>'Orange'>,>'Yellow'> };> >// Printing Strings stored in 2D array> >for> (>int> i = 0; i <4; i++)> >std::cout << colour[i] <<>' '>;> >return> 0;> }>

>

>

산출

리눅스 $home
Blue Red Orange Yellow>

설명:

  • 문자열 수와 문자열 크기는 모두 고정되어 있습니다. 4 역시 생략될 수 있으며 적절한 크기는 컴파일러에 의해 계산됩니다. 그러나 컴파일러가 적절한 메모리 레이아웃을 선택할 수 있도록 두 번째 차원(이 경우 10)이 제공되어야 합니다.
  • 각 문자열은 수정될 수 있지만 두 번째 차원에서 제공하는 전체 공간을 차지합니다. 각각은 메모리에 나란히 배치되며 크기를 변경할 수 없습니다.
  • 때로는 메모리 공간을 제어하는 ​​것이 바람직하며, 이렇게 하면 고정된 일반 레이아웃으로 메모리 영역이 할당됩니다.

3. String 클래스 사용하기

STL 문자열 또는 문자열 클래스 변경 가능한 문자열 배열을 만드는 데 사용될 수 있습니다. 이 방법에서는 문자열의 크기가 고정되어 있지 않으며 문자열이 변경될 수 있으므로 본질적으로 동적으로 만들어집니다. 표준::문자열 내장 함수를 사용하여 문자열 배열을 만드는 데 사용할 수 있습니다.

예:

C++


나무와 그래프 이론



// C++ program to demonstrate> // array of strings using> // string class> #include> #include> // Driver code> int> main()> {> >// Initialize String Array> >std::string colour[4]> >= {>'Blue'>,>'Red'>,>'Orange'>,>'Yellow'> };> >// Print Strings> >for> (>int> i = 0; i <4; i++)> >std::cout << colour[i] <<>' '>;> }>

>

>

산출

Blue Red Orange Yellow>

설명:

배열의 크기는 고정되어 있지만 반드시 그럴 필요는 없습니다. 여기서도 4는 생략될 수 있으며 컴파일러는 배열의 적절한 크기를 결정합니다. 문자열은 변경 가능하므로 변경할 수도 있습니다.

4. 벡터 클래스 사용

벡터 제한을 초과하는 새 문자가 추가될 때마다 크기가 두 배로 늘어나는 동적 배열입니다. STL 컨테이너 벡터를 사용하면 크기가 다양할 수 있는 배열을 동적으로 할당할 수 있습니다.

C에는 클래스가 없으므로 이는 C++에서만 사용할 수 있습니다. 여기의 초기화 목록 구문에는 2011 C++ 표준을 지원하는 컴파일러가 필요하며, 귀하의 컴파일러가 지원할 가능성이 매우 높지만 이를 알고 있어야 합니다.

예:

C++




// C++ program to demonstrate> // array of strings using> // vector class> #include> #include> #include> // Driver code> int> main()> {> >// Declaring Vector of String type> >// Values can be added here using> >// initializer-list> >// syntax> >std::vector colour{>'Blue'>,>'Red'>,> >'Orange'>};> >// Strings can be added at any time> >// with push_back> >colour.push_back(>'Yellow'>);> >// Print Strings stored in Vector> >for> (>int> i = 0; i std::cout << colour[i] << ' '; }>

>

>

산출

Blue Red Orange Yellow>

설명:

뭔가 빠른 정렬
  • 벡터는 동적 배열이므로 언제든지 항목을 추가하고 제거할 수 있습니다.
  • 모든 유형이나 클래스를 벡터에 사용할 수 있지만, 주어진 벡터는 하나의 유형만 보유할 수 있습니다.

5. 배열 클래스 사용

배열은 메모리 공간에 지속적으로 저장되는 데이터의 균일한 혼합입니다. STL 컨테이너 배열은 고정 크기 배열을 할당하는 데 사용할 수 있습니다. 벡터와 매우 유사하게 사용될 수 있지만 크기는 항상 고정되어 있습니다.

예:

C++

문자를 문자열로 변환 자바




// C++ program to demonstrate> // array of string using STL array> #include> #include> #include> // Driver code> int> main()> {> >// Initialize array> >std::array colour{>'Blue'>,>'Red'>,> >'Orange'>,>'Yellow'>};> >// Printing Strings stored in array> >for> (>int> i = 0; i <4; i++)> >std::cout << colour[i] <<>' '>;> >return> 0;> }>

>

>

산출

Blue Red Orange Yellow>

이것이 결코 문자열 모음을 만드는 유일한 방법은 아닙니다. C++는 여러 컨테이너 클래스를 제공하며 각 클래스에는 다양한 장단점과 기능이 있으며 모두 프로젝트에서 요구 사항을 충족하기 위해 존재합니다. 탐험하고 즐겨보세요!

결론: 모든 방법 중에서 Vector는 C++에서 문자열 배열을 만드는 가장 좋은 방법인 것 같습니다.

에스.