안녕하세요 삽잡이 입니다!
오늘은 지금까지 배워온 모든 것들을 응요해서
예제를 만들어봤습니다.
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 |
오늘은 여기까지~!
'삽질의 현장 > - C' 카테고리의 다른 글
곱씹어보자 C!_#025_삽잡이의 두서없이 막말하는 함수 포인터 (0) | 2015.06.30 |
---|---|
곱씹어보자 C!_#024_삽잡이의 두서없이 막말하는 void* (0) | 2015.06.30 |
곱씹어보자 C!_#022_삽잡이의 두서없이 막말하는 구조체 예시_둘 (0) | 2015.06.28 |
곱씹어보자 C!_#021_삽잡이의 두서없이 막말하는 구조체 예시_하나 (0) | 2015.06.28 |
곱씹어보자 C!_#020_삽잡이의 두서없이 막말하는 구조체를 사용해볼까 (0) | 2015.06.28 |