삽질의 현장/- C

곱씹어보자 C!_#023_삽잡이의 두서없이 막말하는 지금까지 응용 예제

shovelman 2015. 6. 30. 02:57




안녕하세요 삽잡이 입니다!

오늘은 지금까지 배워온 모든 것들을 응요해서

예제를 만들어봤습니다.


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
#pragma warning(disable:4996)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
 
typedef struct _stringarray_tag
{
    char* sArray[100];
    int sCount;
} StringArray;
 
char* InputString()
{
    char buf[500];
    char* s;
 
    printf("문자열 입력: ");
    gets(buf);
 
    s = (char*)malloc(strlen(buf)+1);
    strcpy(s, buf);
    return s;
}
void PrintStringArray(StringArray* psa)
{
    int i;
    for(i = 0 ; i < psa->sCount ; ++i)
    {
        printf("string[%d]: %s\n", i, psa->sArray[i]);
    }
    printf("\n");
}
void FreeStringArray(StringArray* psa)
{
    //free(sArray);
    int i;
    for( i = 0 ; i < psa->sCount ; ++i)
        free( psa->sArray[i] );
}
void AddStringArray(StringArray* psa)
{
    psa->sArray[psa->sCount++= InputString();
}
int Search(StringArray* psa)
{
    int i;    
    char str[500];
 
    printf("검색할 문자열 입력: ");
    gets(str);
    
    for( i = 0 ; i < psa->sCount ; ++i)
        if( strcmp(str, psa->sArray[i]) == 0 )
            return i;
 
    return -1;
}
void RemoveStringArray(StringArray* psa)
{
    int i;
    int del=Search(psa);
    
    if(-1 == del)
    {
        printf("삭제할 문자열 없음!\n");
        return;
    }
 
    free(psa->sArray[del]);
    for( i = del ; i < psa->sCount-1 ; ++i)
        psa->sArray[i] = psa->sArray[i+1];
    --psa->sCount;
    printf("찾은 문자열 제거 완료!\n");
}
void SearchStringArray(StringArray* psa)
{
    int selIndex = Search(psa);
    if( selIndex != -1)
        printf("문자열 찾음: %s!\n", psa->sArray[selIndex]);
    else
        printf("문자열 없음!\n");
 
}
void InitStringArray(StringArray* psa)
{
    psa->sCount = 0;
}
void UninitStringArray(StringArray* psa)
{
    FreeStringArray(psa);
}
void Menu()
{
    puts("================");
    puts("1. 문자열 추가");
    puts("2. 문자열 출력");
    puts("3. 문자열 제거");
    puts("4. 문자열 검색");
    puts("3. 프로그램 종료");
}
void main()
{
    int bRun = 1;
    StringArray sa;
 
    InitStringArray(&sa);
    while(bRun)
    {
        Menu();
        switch(_getch())
        {
        case '1':
            AddStringArray(&sa);
            break;
        case '2':
            PrintStringArray(&sa);
            break;
        case '3':
            RemoveStringArray(&sa);
            break;
        case '4':
            SearchStringArray(&sa);
            break;
        case '0':
            bRun = 0;
            break;
        }
    }
    UninitStringArray(&sa);
}
cs


오늘은 여기까지~!