suuuuu 2018. 11. 19. 21:38
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#include "stdafx.h"
#include <windows.h>
#include<string.h>
#pragma warning (disable:4996)
//표준함수
//printf
//scanf
//rand
//strlen
//sleep
//cls
//strcmp
//strcpy
 
void func77() {
 
    int a = strcmp("호랑이""토끼"); //다르니까 1
    int b = strcmp("호랑이""호랑이"); //같으니까 0
    printf("%d %d\n", a, b);
    printf("%d\n", strcmp("토끼""토끼"));//같으니까 0
 
    if (strcmp("토끼""토끼"== 0)
    {
        printf("동일합니다.\n");
    }
    else {
        printf("동일하지 않습니다.\n");
    }
}
 
 
 
//func78("토끼","호랑이");
//int a = func78("APPLE", "APPLE"); //다르면 -1, 같으면 0
//printf("%d\n", a);
 
int func78(const char *a, const char *b) { //void적으면 안됨 값을 리턴할것이기 때문에
    printf("함수가 불러짐\n");
    int s1 = strlen(a); //a의 길이를 얻겠다는 소리
    int s2 = strlen(b);
 
 
    if (s1 != s2) //다르면 -1
    {
        return -1;
    }
 
    for (int i = 0; i < s1; i++)
    {
        //printf("%c ", a[i]);
        if (a[i] != b[i]) //2^3값 비교 0 
        {
            return -1;
        }
 
    }
    return 0//같으면 0
}
 
 
void func79() {
 
    char ar[10= "apple";
    printf("%d %d\n"sizeof(ar), strlen(ar)); //sizeof는 배열의 크기 strlen는 문자열의 크기
 
    char br[10= "호랑이";
    printf("%d %d\n"sizeof(br), strlen(br)); //sizeof는 배열의 메모리크기 strlen는 문자열의 크기 //한글은 2btye 영문은 1btye
    printf("\n\n");
 
    while (1)
    {
        
        printf("문자열을 입력하세요\n");
        char ar[16]; //2의 배수형식을 주로 사용한다
        printf("\n이름을 입력하세요\n종료하실려면 종료라고 입력하세요\n");//사용자 인터페이스
        scanf("%s"&ar); //&ar이나 &ar[0] //에러 코드: C4996_deprecation,, 없어진다는 뜻
        printf("%s %d\n", ar, strlen(ar));
 
        if (strcmp (ar, "종료")==0// (!strcmp (ar, "종료"))
        {
            printf("\n프로그램을 끝냄니다!");
            break;
        }
    }
}
 
void func80() {
    const char *src = "APPLE";
    char ar[10]; 
    for (int i = 0; i < 5; i++)
    {
        ar[i] = src[i];
    }
    ar[5= NULL;
    printf("%s %s\n", src, ar); //ar은 APPLE을 채우고 남은 쓰레기값이 나옴으로 //ar[5]에 NULL을 넣는다
 
    char br[10];
    strcpy(br, src);//s의 내용을 br에 (복사시켜)넣는다! 
    printf("%s\n", br);//쓰레기 값이 나오지 않는 이유는 앞에서 ar[5]에 NULL을 넣은 값까지 넣었다!
 
    char *= new char [5 + 1];
    strcpy(d, src);
    printf("%s\n", d);
 
    const char *ss = "무궁화 꽃이 피었습니다.";
    char *dest = new char [strlen(ss)+1];
    strcpy(dest, src);//의미 strcpy(destination, source); 
    printf("%s\n", dest);
 
}
 
void func81() {
    int size = strlen("apple");
    printf("%d\n"size);
 
 
    char *p;
    p = new char[4+1];//제일 많이 쓰인다요~!~!~!
    p[0= 'A';
    p[1= 'B';
    p[2= 'C';
    p[3= 'D';
    p[4= NULL;//쓰레기값이 나오지 못하게 null넣음
    printf("%s\n", p);
 
    const char *="ABCD";//자동으로 null이 들어가서 null을 넣을 필요가 없슴
    printf("%s\n", t);
 
    //char b[4] = "ABCD";//4는 null을 넣을 공간이 없기에 오류가 뜬다
    //char b[4+1] = "ABCD";
    char b[] = "ABCD"//자동으로 공간 확보
    printf("%s\n", b);
 
    //char f[] = { 'A','B','C','D' };//쓰레기 값 나온다아아~ 
    char f[] = { 'A','B','C','D',NULL};
    printf("%s\n", f);
    
    //%s를 쓰기 때문에 NULL을 넣음.
}
 
int main()
{
    func80();
}
cs