반응형
JAVA에서의 배열 선언
나는 프로그래밍 언어를 JAVA로 시작하였기 때문에 JAVA가 편하다. 그래서 C++을 사용할 때 헷갈려서 불편하곤 한다. 특히 '배열'을 선언할 때 불편하다.
먼저 JAVA에서의 배열 선언이다.
int [] Array =new int [3];
만약 배열의 크기가 정해지지 않았다면 다음과 같이 설정하면 된다.
Scanner scan=new Scanner (System.in);
int n=scan.nextInt();
int [] Array = new int [n];
2차원 배열도 위의 방법과 같이 생성 할 수 있다.
Scanner scan=new Scanner(System.in);
int m=scan.nextInt();
int n=scan.nextInt();
int [][] Array = new int [m][n];
그렇다면 C++에서 배열은 어떻게 생성할 수 있을까?
C++에서의 배열 선언
▶ 배열 선언 시 공간 할당
int arr[6];
만약 위의 예시처럼 배열을 선언했다면 공간은 아래 그림처럼 할당이 된다. (int형은 4byte이므로)
따라서
int arr[6];
for(int i=0;i<6;i++){
arr[i]=10*(i+1);
}
와 같이 배열을 초기화 시켜주었다면
이렇게 배열이 만들어진다.
정리를 하자면 아래의 방법으로 배열이 만들어질 수 있다.
int arr[6]={1,2,3,4,5,6};
int arr[]={1,2,3,4,5,6};
int arr[6]={1,2};
//이런 경우는 arr[6]={1,2,0,0,0,0}로 초기화
char 배열 선언
char 형 배열도 int형 배열을 선언할 때의 동일하다.
C++ 에서 cout은 배열내에 '\0'가 있으면 그 부분까지 출력하고 출력을 중단한다.
#include<iostream>
using namespace std;
int main() {
char word[10] = { 'p','r','o','g','r','a','m','\0' };
//char word[10] = "program";
cout << "input word is " << word << endl;
word[3] = '\0';
cout << "input word is " << word << endl;
word[0] = 'w';
word[1] = 'o';
word[2] = 'r';
word[3] = 'd';
cout << "input word is " << word << endl;
}
getline( ) 함수
배열에 문자열을 저장할 때는 cin을 사용하지만 getline함수를 사용해서도 저장할 수 있다.
먼저 cin을 이용하여 "program"을 저장해보자.
#include<iostream>
using namespace std;
int main() {
char word[20];
cin >> word;
cout << "input word is " << word << endl;
}
이번에는 getline 함수를 사용하여 program이라는 문자열을 저장해보자.
#include<iostream>
using namespace std;
int main() {
char word[20];
cin.getline(word, 20);
cout << "input word is " << word << endl;
}
getline함수를 사용해서도 문자열에 저장할 수 있음을 알 수 있다.
cin.getline( arrayName, arraySize ); 와 같은 형식으로 사용한다.
728x90
반응형
'💻 개인공부 💻 > C | C++' 카테고리의 다른 글
[C++] 포맷 플래그 (0) | 2020.06.12 |
---|---|
[C++] vector Container (0) | 2020.06.10 |
[C++] 가상함수 상속을 이용하여 값을 변환해주는 클래스 작성 (0) | 2020.05.24 |
[C++] 다중상속을 이용한 연산 프로그램(feat. public 다중상속) (0) | 2020.05.20 |
[C++] 멤버함수와 외부 함수를 이용한 OOP(feat. friend, operator) (0) | 2020.05.02 |