친절코딩

53. 배열과 문자열 본문

C언어 배우기/C언어 배우기(51~100)

53. 배열과 문자열

웹도날드 2018.12.14 03:25


이 강의는 이전 강의 '문자와 문자열'과 연관이 있습니다.


이전에 c, k, j 등 한 글자로만 된 것을 문자라고 부르고 string, language 등 둘 이상의 문자 조합으로 이루어진 것을 문자열이라고 부른다는 것을 배웠습니다. 사실 문자열은 배열로 만들어진 일렬로 된 메모리 공간에 문자가 하나씩 들어가 있는 것과 같습니다. 예를 들어 우리가 char형으로 요소의 개수가 10개인 배열을 생성하면 거기에 10개의 문자를 담을 수 있는 것입니다.


1
char Array[10<-- 10개의 문자를 담을 수 있는 배열을 생성합니다.
cs


하지만 우리가 문자를 담아놓기만 하면 컴퓨터는 어디까지가 문자열인지 알지 못합니다. 배열의 선언을 통해 할당된 메모리 공간에는 데이터가 아예 들어있지 않은 것이 아니라 의미가 없는 값인 쓰레기값이 들어있기 때문입니다. 그렇기에 문자열의 끝을 나타내는 표시가 필요합니다. 이것이 \0(널 문자)입니다.



모든 문자열은 마지막에 마침표 표시인 널 문자를 위한 공간이 필요합니다. 따라서 요소의 개수가 10개인 배열을 만들면 실제로 저장할 수 있는 문자는 9개가 됩니다. 모든 문자열은 문자열의 개수 + 1의 배열 공간을 필요로 합니다.


이렇게 만들어진 문자열은 형식 지정자 %s를 통해 한 번에 출력할 수 있습니다. 예제를 보겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
 
int main()
{
    // 요소의 개수가 10인 배열을 선언합니다.
    char Array[10];
 
    Array[0= 'S';
    Array[1= 'T';
    Array[2= 'R';
    Array[3= 'I';
    Array[4= 'N';
    Array[5= 'G';
    Array[6= '\0';
 
    // 이후에 형식 지정자를 통해 배열을 출력할 수 있습니다.
    printf("저장된 문자열은 %s입니다.\n", Array);
 
    return 0;
}
 
 
출력 결과////////////////////////////////
 
저장된 문자열은 STRING입니다.
cs


'C언어 배우기 > C언어 배우기(51~100)' 카테고리의 다른 글

55. 문자열 입력  (0) 2018.12.17
54. 문자열 배열의 초기화  (0) 2018.12.17
53. 배열과 문자열  (0) 2018.12.14
52. 다차원 배열  (0) 2018.12.11
51. 배열의 초기화  (0) 2018.12.06
0 Comments
댓글쓰기 폼