C++에서 문자열은 일반적으로 NULL 문자 '로 끝나는 문자의 배열(또는 참조/지정)입니다. '. 문자열은 1차원 문자 배열이고, 문자열 배열은 2차원 문자 배열입니다.각 행에는 문자열이 포함되어 있습니다.
다음은 C++에서 문자열 배열을 만드는 5가지 방법입니다.
- 사용 포인터
- 사용 2차원 배열
- 사용하여 문자열 클래스
- 사용하여 벡터 클래스
- 사용하여 배열 클래스
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++에서 문자열 배열을 만드는 가장 좋은 방법인 것 같습니다.
에스.