본문 바로가기
비트 단기/c

8c

by woohyun22 2018. 11. 19.
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
// ConsoleApplication5.cpp: 콘솔 응용 프로그램의 진입점을 정의합니다.
//
#include "stdafx.h"
#pragma warning(disable:4996)//_s없을떄 오류잡는거
#include <windows.h>
//표준함수
//제공되어있는 함수 
//printf(),scanf_s(),rand(),strlen(),strcmp(),sleep(),cls()
void func81() {
    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
    char *name[5];
    while (1)
    {
        char ar[16]; //2의 배수형식을 주로 사용한다
        printf("이름을 입력하시오 종료하실려면 종료라고 입력하세요\n");//간단한 ui
        scanf("%s"&ar); //&ar이나 &ar[0] _s를 안썻을떄 오류
        if (strcmp(ar, "종료"== 0) {//strcmp(a,b) //"문자열a,b를 비교",return값이 있다 문자열의값이 같으면0 . 주요 15함수중 하나
            printf("프로그램을 끝냅니다.");
            break;
        }
        printf("%s %d\n", ar,strlen(ar));    
    }
    int size = strlen(ar);
    printf("%d"size);
}
void func77() {
    int a = strcmp("토끼""호랑이");//같을떄 0 다르면 다른값.
    int b = strcmp("토끼""토끼");
    printf("%d %d\n", a,b);
    printf("%d\n",strcmp("토끼""토끼"));
    if (strcmp("토끼""토끼"== 0)
        printf("같다\n");
    else
        printf("다르다\n");
}
//strcmp와 같은 함수를 직접만들기
//쓰는 세가지 방식
//int a= func78("토끼", "호랑이");
//printf("%d\n", a);
//printf("%d\n", func78("토끼", "토끼"));
//func78("토끼", "호랑이");
int func78(const char *a, const char *b) {//const char *a ="tiger" - const뺴면 안됨.
    printf("콜\n");
    int s1 = strlen(a);//길이가 다르면 일단 문자열이 다르다(길이만 봤을때)
    int s2 = strlen(b);
    if (s1 != s2) {
        return -1;
    }
    for (int i = 0; i < s1; i++)
    {
        if (a[i]!=b[i]) {//각각의 배열값이 같은지
            return -1;
        }
    }        
    return 0;
}
void func79() {
    //밑에 여러가지방법 쓰는법
    char *p;//%s는 메모리몇개를 가지고 출력하라는지 모름,메모리NULL을만나면 멈춘다.- 주소출력
    p = new char[4+1];//이 방식이 가장 선호되는 방식이다.
    p[0= 'A';
    p[1= 'B';
    p[2= 'C';
    p[3= 'D';
    p[4= NULL;
 
    printf("%s\n", p);
    const char *= "ABCD";//*문자열에 넣어주려면 const써줘야된다.
    printf("%s\n",t);//얘는 자동으로 t[4]번에 NULL값을 넣어준다.
    char b[4+1= "ABCD";//NULL넣어줄 공간을 +1해주던가 아니면 아예 비워둬야된다.
    printf("%s\n", b);
    char f[] = { 'A','B''C''D',NULL};//NULL넣어주면 쓰레기값안나온다.
    printf("%s\n", f);
 
}
void func80() {
    const char *= "Apple";
    char ar[10];
    for (int i = 0; i < 5; i++)
    {
        ar[i] = s[i];
    }
    ar[5= NULL;
    printf("%s %s\n", s, ar);//ar배열에 apple넣고 남는 쓰레기값을 출력 ar[5] = NULL; 써주면 정상적으로 가능
 
    char br[10];
    strcpy(br, s);//s가 가지고있는 내용을 br에다가 copy한다. 복사를 하고 NULL조차도 같이 넣어줘서 쓰레기값이 안나온다!
    printf("%s\n", br);
 
    char *= new char[5+1];
    strcpy(d, s);//destination  source    목적지, 소스    dest,src로 보통쓴다.
    printf("%s\n", d);
 
    const char *src = "무궁화 꽃이 피었습니다.tiger";
    char *dest = new char[strlen(src)+1];//길이대로 넣어주고+1 NULL넣어주면된다
    strcpy(dest, src);
    printf("%s\n", dest);
}
int main()
{
    func80();
}
 
cs


728x90

'비트 단기 > c' 카테고리의 다른 글

10 c  (0) 2018.11.22
9 c  (0) 2018.11.20
c 7  (0) 2018.11.16
c 6  (0) 2018.11.15
c 5  (0) 2018.11.13

댓글