2023. 12. 2. 16:46ㆍC언어 기초 100제
https://codeup.kr/problem.php?id=1021
문제 : 배열을 이용해 한 개의 단어를 입력받아 그대로 출력하시오. (단, 단어의 길이는 50자 이하다.)
참고 : https://tcpschool.com/c/c_array_oneDimensional
배열(array) :
같은 타입의 변수들로 이루어진 유한 집합이다.
배열을 구성하는 각각의 값을 배열 요소라고 한다.
배열에서 위치를 가리키는 숫자를 인덱스(index)라고 한다.
C언어에서 인덱스는 언제나 0부터 시작하며, 0을 포함한 양의 정수만을 가질 수 있다.
배열은 같은 종류의 데이터를 많이 다뤄야 하는 경우에 사용할 수 있는 가장 기본적인 자료 구조이다,
배열은 선언되는 형식에 따라 1차원 배열, 2차원 배열뿐만 아니라 그 이상의 다차원 배열로도 선언할 수 있다.
현실적으로는 이해하기 쉬운 2차원 배열까지가 많이 사용된다.
1차원 배열 :
가장 기본적인 배열로 다음과 같은 문접에 따라 선언된다.
'타입 배열이름[배열길이];'
타입은 배열 요소로 들어가는 변수의 타입을 명시한다.
배열 이름은 배열이 선언된 후에 배열로 접근하기 위해 사용된다.
배열의 길이는 해당 배열이 몇 개의 배열 요소를 가지게 되는지 명시한다.
*C언어에서 배열을 선언만 하고 초기화하지 않으면, 각 배열 요소에 아무런 의미를 가지지 않는 쓰레기값(가비지값)이 저장되어 있게 된다.
따라서 초기화하지 않은 배열은 사용하지 않도록 주의해야 한다.
배열 선언과 동시에 초기화 하는 방법 :
다음과 같이 중괄호를 사용하여 초깃값을 나열한 것을 초기화 리스트라고 한다.
타입 배열이름[배열길이] = {배열요소1, 배열요소2, ... };
단, 초기화 리스트의 타입과 배열의 타입은 반드시 일치해야 한다.
만약에 초기화 리스트의 개수가 배열의 총 길이보다 적으면, 배열의 앞에서부터 차례대로 초기화 된다.
이때 초기화하지 못한 나머지 배열 요소는 모두 0으로 자동 초기화된다.
배열의 길이 자동 설정 :
C언어에서는 초기화 리스트에 맞춰 자동으로 배열의 길이를 설정할 수 있다.
다음처럼 배열의 길이를 따로 입력하지 않은 배열은 초기화 리스트의 배열 요소의 개수에 맞춰 자동으로 배열의 길이가 설정된다.
타입 배열이름[] = {배열요소1, 배열요소2, ..};
배열의 특징 :
1. 배열의 길이를 선어할 때에는 반드시 상수를 사용해야 한다.
2. 배열 요소의 인덱스는 언제나 0부터 시작한다.
3. C 컴파일러는 배열의 길이를 전혀 신경쓰지 않는다.
배열이 차지하는 메모리 크기 :
C언어에서 배열을 복사하거나 배열 요소에 특정 작업을 하고 싶을 때는 해당 배열이 차지하는 메모리의 크기를 정확히 알고있어야만 한다.
배열이 차지하는 총 메모리의 크기는 다음 수식을 사용하여 구할 수 있다.
배열이 차지하는 메모리의 크기 = 배열의 길이*sizeof(타입)
배열의 길이를 알고 싶을 때에는 다음 수식을 사용하여 구할 수 있다.
배열의 길이 = sizeof(배열이름) / sizeof(배열이름[0])
*위 수식에서 배열 이름[0]은 해당 배열의 타입을 표현하기 위해 사용되었다.
널(NULL) 문자 :
문자형 배열로 선언된 문자열 변수는 문자열의 끝을 프로그램에 따로 알려야 한다.
그래야 프로그램이 실제 문자열에 속한 값과 그 외의 가비지값을 구분할 수 있다.
이 문자를 널 문자라 하고, \0으로 표시하며, 아스키코드값은 0이다.
data라는 배열의 길이를 51로 선언한다.
51은 널 문자와 최대 50자를 감안해 나온 값이다.
배열의 각 항목은 scanf() 함수를 통해 입력받는다.
printf() 함수를 통해 data 배열에 입력된 문자열을 출력한다.
'C언어 기초 100제' 카테고리의 다른 글
CodeUp C언어 기초 100제_1023번 (0) | 2023.12.28 |
---|---|
CodeUp C언어 기초 100제_1022번 (0) | 2023.12.04 |
CodeUp C언어 기초 100제_1014번 (0) | 2023.12.01 |
CodeUp C언어 기초 100제_1013번 (0) | 2023.12.01 |
CodeUp C언어 기초 100제_1012번 (0) | 2023.11.30 |