(7-1)Array

C/C언어 이론 2018. 10. 3. 18:11
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <stdio.h>
#include <string.h> // 문자열 관련 함수를 사용하려면~~ 필요하다!
 
void main()
{
    /*
        char 배열
            - char는 1개 문자를 표현하는 자료형
            - char의 배열 형태는 "문자열"을 표현할 수 있다.
            - 문자열의 끝에는 널문자 \0 가 삽입되어있다. (자동)
                > 문자열의 끝을 의미
                > 널문자 때문에 배열 선언 시 원하는 문자열 길이보다
                    최소 1이상 여유있게 선언해야 한다.
                > 널문자의 포함때문에 변수명의 접두사에 sz가 붙는다.
                    string-zero
    */
 
    char szStr1[20= "Hello";    // char 배열 선언과 동시에 초기화할때 "문자열" 사용 가능
                                // 나머지 공간은 자동으로 '널문자'가 채워진다.
    char szStr2[20= { 'H''e''l''l''o', }; // szStr1과 동일
    
    char szStr3[20= {0, }; // 앞서 했던 초기화 방법과 동일! (정수 0은 널문자)
 
    char szStr4[20]; // 초기화 하지 않은 문자 배열
    
    char szStr[] = "Hello World"// 길이가 자동으로 잡힌다. (11글자)
    
    printf("szStr의 크기 : %d\n"sizeof(szStr)); // 널문자의 포함 때문에 12
 
    printf("널문자 문자로 출력 : [%c]\n", szStr[11]);
    printf("널문자 정수로 출력 : [%d]\n", szStr[11]);
    
    printf("공백을 문자로 출력 : [%c]\n"' ');
    printf("공백을 정수로 출력 : [%d]\n"' ');
    // 널문자는 정수 0이다. --> 여태 사용했던 정수 0은 문자로는 '널문자'였다!!
    // 공백과는 다른 문자 (공백은 정수 32)
 
    
    printf("szStr = [%s]\n", szStr); // 문자 배열의 모든 내용은 %s 문자열로 출력할 수 있다!
    // 이때, %s는 널문자(정수0)를 만날 때까지 글자를 출력한다.
 
    szStr4[0= 'H';
    szStr4[1= 'e';
    szStr4[2= 'l';
    szStr4[3= 'l';
    szStr4[4= 'o';
    //szStr4[5] = '\0';
    szStr4[5= 0// 윗 줄과 동일하다!  '\0' = 0
 
    printf("szStr4 = [%s]\n", szStr4);
 
    // 문자배열에 문자열 대입
    // szStr4 = "Hello World"; // 불가능
    // 문자열을 대입하는 행위(대입연산)는 배열 생성 시에만 가능
 
    // 문자열을 배열에 대입하려면 문자열 관련 '함수'를 사용해야 한다! (기억하자)
 
    // strcpy(저장될 배열, 저장할 문자열); --> string copy
    strcpy(szStr4, "Hello World"); // string.h 필요
    printf("szStr4 = [%s]\n", szStr4);
 
    strcpy(szStr4, szStr); // 뒤에 문자열을 앞에 복사하겠다~~!
}
cs



'C > C언어 이론' 카테고리의 다른 글

(7-3)Array  (0) 2018.10.03
(7-2)Array  (0) 2018.10.03
(6-3)Function  (0) 2018.10.02
(6-2)Function  (0) 2018.10.02
(6-1)Function  (0) 2018.10.02

설정

트랙백

댓글