프로그래밍 언어/C++

[C++] 배열과 문자열

새싹 개발자 뚜비 2022. 1. 13. 16:50
728x90

판다코딩 C++ 인강 공부 정리


C++는 복합데이터형을 제공한다.

사용자 정의대로 새로운 데이터형을 만들 수 있다.

복합데이터형 : 기본 정수형과 부동소수점형의 조합.

 

[ 배열 ]

#include <iostream>

using namespace std;

int main() {

	short month[12] = { 1, 2, 3 };

	cout << month[0] << endl;  // 1
	
	return 0;
}

배열(array) : 같은 데이터형의 집합typeName arrayName[arraySize];

 

short month[12] = { 1, 2, 3};month라는 이름의 12개의 사이즈를 가지고 있는 배열로

첫번째의 값이 1, 두번째의 값이 2, 세번째의 값이 3이다.

cout으로 month[0]을 출력시키면 첫번째 값인 1이 나온다. (컴퓨터언어는 기본적으로 0부터 시작함)

 

배열을 사용할 수 있는 몇가지 규칙

1. 배열 원소에 대입할 값들을 콤마로 구분하여 중괄호로 묶어 선언한다.

2. 초기화를 선언 이후 나중에 할수는 없다.

3. 배열을 다른 배열에 통째로 대입할 수 없다.   

ex)  short month[5] = { . . . }       

      short year[12] = { . . . }       

      year = month;   X

4. 초기화 값의 개수를 배열 원소의 개수보다 모자라게 제공할 수 있다.

5. 배열을 부분적으로 초기화하면, 나머지 원소들은 모두 0으로 설정한다.   

즉, 명시적으로 첫 번째 원소만 0으로 초기화하면 나머지 원소들은 모두 0으로 초기화된다.

6. 배열을 초기화할 때 대괄호 속을 비워두면 컴파일러가 초기화 값의 개수를 헤아려 배열 원소 개수를 저장한다.

 

 

[ 문자열 ]

#include <iostream>

using namespace std;

int main() {

	// 문자열
	char a[5] = { 'H', 'e', 'l', 'l', 'o'};

	cout << a << endl;

	return 0;
}

null 문자가 포함되지 않아서 알수없는 글자가 섞여서 출력됨.

 

#include <iostream>

using namespace std;

int main() {

	// 문자열
	char a[6] = { 'H', 'e', 'l', 'l', 'o', '\0'};

	cout << a << endl;

	return 0;
}

null 문자 삽입 후 정상적으로 출력됨.

 

 

[ 더 효율적으로 문자열을 선언하는 방법 ]

#include <iostream>

using namespace std;

int main() {

	// 문자열
	char a[] = "Hello";

	cout << a << endl;

	return 0;
}

배열의 사이즈를 비워두면 컴파일러가 자동적으로 배열에 알맞은 사이즈를 구해서 만들어준다.

{ } 중괄호가 아니라 " "쌍따옴표를 이용하여 배열을 초기화하게 되면

명시적으로 " "쌍따옴표는 null문자를 포함하기 때문에 원하는 값(Hello)만 출력되는 것을 확인할 수있다.

728x90