배열

FastCampus All-In-One 패키지 중 C/C++ 수업을 듣고 정리한 자료입니다.

실행환경: Windows 10

학습목표

  • 배열을 사용해야 하는 이유에 대한 올바른 이해
  • 배열의 선언 및 접근 방법에 대한 이해

배열을 사용하는 이유


  • 변수가 많으면 일일이 만들어서 처리하기가 불가능함.
  • 따라서, 동일한 자료형을 여러 개 담는 기술이 필요.
  • 배열을 사용하면 동일한 성격의 데이터를 다수 표현할 수 있다.

배열의 선언과 초기화


자료형 배열명[배열의 크기] = {초기화 };
  • 초기화 값은 없을 수도 있다.

배열의 원소중 최대값 찾기

#include <stdio.h>
#include <limits.h>

int main(void) {
    int a[10] = {6,5,4,3,9,8,0,1,2,7};
    int i, maxValue = INT_MIN;
    for (i = 0; i < 10; i++) {
        if (maxValue < a[i]) maxValue = a[i];
    }
    printf("%d\n", maxValue);
    system("pause");
}
  • maxValueai번째 값보다 작다면 그 값을 넣어줌.
  • INT_MIN
    • 최대값을 구하기 위해 자주 사용되는 기능
    • <limit.h> 헤더파일에 정의
    • int형 범위의 최소값을 반환함(약 -20억)
    • INT_MAX또한 사용 가능.

결과

9
계속하려면 아무 키나 누르십시오 . . .

문자열과 배열


  • 원시 C언어는 자체적인 문자열 자료형을 제공하지 않는다
  • 따라서, 문자(Character)를 여러 개 묶어 놓는 형태로 문자열을 표현
  • C++에서는 자체적으로 string 자료형을 제공

문자열과 배열 예시

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void) {
    char a[20];
    scanf("%s", &a);
    printf("%s\n", a);
    system("pause");
}
  • 문자열 선언시 문자열의 크기보다 배열의 크기가 크도록 해야함
  • 문자열을 입력 받을때 및 출력할 때는 %s라는 형식 지정자를 사용

결과

권순우 <- 원하는 문자열 입력
권순우
계속하려면 아무 키나 누르십시오 . . .

인덱스로 접근해서 문자열 바꾸기

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void) {
    char a[20] = "Hello World";
    a[4] = ',';
    printf("%s\n", a);
    system("pause");
}
  • 특정한 인덱스의 문자에 바로 접근할 수 있다는 장점이 있음

결과

Hell, World
계속하려면 아무 키나 누르십시오 . . .

문자열에 포함된 ‘l’ 개수 출력하기

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void) {
    # 미리 문자열을 지정하는 경우 배열의 크기는 자동으로 맞춰짐
    char a[] = "Hello World";
    int count = 0;
    for (int i = 0; i <= 10; i++) {
        if (a[i] == 'l') count++;
    }
    printf("%d\n", a);
    system("pause");
    return 0;
}
  • 특정한 인덱스의 문자에 바로 접근할 수 있다는 장점이 있음

결과

3
계속하려면 아무 키나 누르십시오 . . .

요약


  • 배열을 이용하면 많은 양의 데이터를 쉽게 처리할 수 있다.
  • C언어에서의 문자열은 내부적으로 문자의 배열

Reference


패스트캠퍼스 컴퓨터공학 올인원 패키지

Comments