2022.02.25 문자열 라이브러리 함수 실습

2022. 2. 28. 02:13과제 업로드

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
145
146
147
148
149
150
151
152
153
154
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
 
 
int main()
{
    printf("####헤더 파일 실습####\n");
    int input;
    printf("문자를 입력하시오(ctrl+z 는 종료)\n");
    while (1)
    {
        if ((input = getchar()) != EOF)
        {
            putchar(input);
        }
        else
        {
            break;
        }
    }
        char input1[20];
        //공백을 포함한 문자열을 출력
        printf("문자열을 입력하시오:");
        gets_s(input1, 20);
        puts(input1);
 
        //공백을 포함한 문자열을 출력 못함
        printf("문자열을 입력하시오:");
        scanf_s( "%s", input1, sizeof(input1));
        puts(input1,20);
        //키보드 버퍼 클리어 scanf_s  함수에서 처리 못한 공백 이후 문자열 입력 받는 gets_s()을 사용
        
        //<ctype.h>
        gets_s(input1,20);
        printf("### <ctype.h> 헤더파일 연습###\n");
 
        while (1)
        {
            printf("문자를 입력하시오(ctrl +z 종료) : ");
 
            if ((input = getchar()) != EOF)
            {
                if (isalpha(input)) //알파벳 검사
                {
                    getchar();
                    printf("%c는 알파벳입니다. \n", input);
                    if (isupper(input)) // 대문자 검사
                    {
                        printf("%c는 대문자입니다. \n", input);
                        printf("소문자는 %c입니다. \n", tolower(input));
                    }
                    else // 소문자 검사
                    {
                        printf("%c는 소문자입니다. \n", input);
                        printf("대문자는 %c입니다. \n", toupper(input));
                    }
                }
                    if (isdigit(input))
                    {
                        printf("%c는 숫자입니다.\n", input);
                    }
                    if (isalnum(input))
                    {
                        printf("%c는 알파벳 또는 숫자입니다.\n", input);
                    }
                    if (isascii(input))
                    {
                        printf("%c(%d)는 아스키 코드 입니다.\n", input, input);
                    }
                    if (isblank(input))
                    {
                        printf("%c는 공백입니다.\n", input);
                    }
                    printf("\n");
            }
            else
            {
                break;
            }
 
        
        }
        //<stdlib.h> 헤더파일 실습
        printf("###<stdlib.h> 헤더파일 실습###\n");
        printf("문자열(정수)을 입력하시오 : ");
        //배열에 문자열을 입력 받아 저장한 뒤 atoi함수를 이용해 수로 이루어진 문자열을 실제 정수형 데이터 바꿔줍니다.
        char in_str[20];
 
        gets_s(in_str, sizeof(in_str));
 
        int in_a = atoi(in_str); //문자열로 입력된 수를 int형수로
        long lo_a = atoi(in_str); //문자열로 입력된 수를 long형 수로 
        printf("문자열 %s 의 int 형은 %d, long형은 %d\n", in_str, in_a, lo_a);
 
        printf("문자열(실수)을 입력하시오 : ");
        
        gets_s(in_str, sizeof(in_str));
        float fl_a = atof(in_str); //문자열로 입력된 수를 float형수로
        double do_a = atof(in_str); //문자열로 입력된 수를 double형 수로 
        printf("문자열 %s 의 float 형은 %f, double형은 %lf\n", in_str, fl_a, do_a);
 
 
        printf("\n");
 
        //###<string.h>헤더 파일 실습###
        printf("###<string.h>헤더 파일 실습###\n");
        char* s1= "1234";
        printf("strlen(s1) : %s 의 크기는 %d입니다.\n",s1,strlen(s1));
 
        char* s2 = "cprogram";
        char* s3 = "cproGRAM";
 
        if (strcmp(s2,s3) ==0)
        {
            printf("strcmp(): 동일한 문자열입니다.\n");
        }
        else
        {
            printf("strcmp(): 동일한 문자열이 아닙니다.\n");
        }
        if (strncmp(s2, s3,4== 0)
        {
            printf("strcmp(): 동일한 문자열입니다.\n");
        }
        else
        {
            printf("strcmp(): 동일한 문자열이 아닙니다.\n");
        }
 
        char s4[20= {0};
        strcpy_s(s4, sizeof(s4), s2);
        printf("strcpy_s() : 복사된 문자열은 %s입니다.\n", s4);
 
        strncpy_s(s4, sizeof(s4), s2,4);
        printf("strncpy_s() : 복사된 문자열은 %s입니다.\n", s4);
 
        char s5[20= "c pro";
        char *s6 = "gramming";
 
        strcat_s(s5, sizeof(s5), s6);
        printf("strcat_s() : 연결된 문자열은 %s입니다.\n", s5);
 
 
        strncat_s(s5, sizeof(s5), s6,4);
        printf("strncat_s() : 연결된 문자열은 %s입니다.\n", s5);
 
        char *s7 = "cprogramming";
        printf("strchr() :'m' 검색 문자열 : %s\n", strchr(s7, 'm'));
        printf("strrchr() :'m' 검색 문자열 : %s\n", strrchr(s7, 'm'));
        printf("strstr() :\"pro\" 검색 문자열 : % s\n", strstr(s7, "pro"));
    return 0;
}
cs