[정보처리기사 필기] 프로그래밍 언어 활용 - 103. 배열과 문자열

1. 배열의 개념

  • 동일한 데이터 유형을 여러 개 사용해야 할 경우 이를 손쉽게 처리하기 위해 여러 개의 변수들을 조합해서 하나의 이름으로 정의해 사용하는 것
  • 하나의 이름으로 여러 기억장소를 가리키기 때문에 배열에서 개별적인 요소들의 위치는 첨자를 이용하여 지정
  • 변수명 뒤에 대괄호 [ ]를 붙이고 그 안에 사용할 개수를 지정
  • 행 우선으로 데이터가 기억장소에 할당
  • C언어에서 배열
    • 위치 : 0부터 시작
    • 배열 위치를 나타내는 첨자 없이 배열 이름을 사용하면 배열의 첫 번째 요소의 주소를 지정하는 것과 같음

2. 1차원 배열

  • 변수들을 일직선상의 개념으로 조합한 배열
  • 형식 : 자료형 변수명[개수];
    • 자료형 : 배열에 저장할 자료의 형을 지정
    • 변수명 : 사용할 배열의 이름으로 사용자가 임의로 지정
    • 개수 : 배열의 크기를 지정하는 것으로 생략할 수 있음

3. 2차원 배열

  • 변수들을 평면, 행과 열로 조합한 배열
  • 형식 : 자료형 변수명[행개수][열개수]
    • 자료형 : 배열에 저장할 자료의 형을 지정
    • 변수명 : 사용할 배열의 이름으로 사용자가 임의로 지정
    • 행개수 : 배열의 행 크기를 지정
    • 열개수 : 배열의 열 크기를 지정

4. 배열의 초기화

  • 배열 선언시 초기값 지정
  • 배열을 선언할 때 배열의 크기를 생략하는 경우 : 반드시 초기값을 지정해야 초기값을 지정한 개수만큼 배열이 선언도미
  • 배열의 개수보다 적은 수로 배열을 초기화하면 입력된 값만큼 지정한 숫자가 입력되고, 나머지 요소에는 0이 입력

5. 배열 형태의 문자열 변수

  • C언어
    • 큰따옴표("")로 묶인 글자는 글자 수에 관계없이 문자열로 처리
    • 문자열을 저장하는 자료형이 없기 때문에 배열, 포인터를 이용하여 처리
  • 배열에 문자열을 저장하면 문자열의 끝을 알리기 위한 널 문자('\0')가 문자열 끝에 자동으로 삽입
  • 배열에 문자열을 저장할 때는 배열 선언 시 초기값으로 지정해야하며, 선언된 배열에는 문자열을 저장할 수 없음
  • 문자열 끝에 자동으로 널 문자('\0')가 삽입되므로, 널 문자까지 고려하여 배열 크기를 지정해야 함
  • 형식 : char 배열이름[크기] = "문자열"

6. JAVA의 문자열

  • C언어와 JAVA의 차이점
    • C언어 : 문자열을 배열에 넣고 배열의 이름을 이용하든지 포인터 변수를 이용해 처리
    • JAVA : 주소를 컨트롤하는 기능이 없기 때문에 불가능
  • 문자열을 처리할 수 있도록 클래스를 제공
  • 클래스를 제공하므로 그에 따른 속성과 메소드도 지원
  • 예시
public class Example {
	public static void main(String[] args){
    	String str = "Information!";
        int n = str.lenght();
        char[] st = new char [n];
        n--;
        for (int k = n; k >= 0; k--) {
        	st[n-k] = str.charAt(k);
		}
        for (char k : st) {
        	System.out.printf("%c", k);
		}
	}
}

//문자열 변수 str을 선언하면서 초기값을 "Information!"을 할당. 객체 변수를 생성할 때는 예약이 new를 입력해야 하지만 문자열 변수는 초기값을 이용해 new없이 바로 생성 가능
//문자열 클래스에서 length() 메소드는 해당 문자열의 길이를 반환, 정수형 변수 n에 str에 저장된 문자열의 길이 12가 저장됨
//JAVA에서는 배열도 클래스이므로 생성할 때는 new를 사용해야 함, n에 12가 저장되어 있으므로 st는 12개의 요소를 갖는 문자 배열로 생성됨