#pragma warning(disable:4996)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
struct StringArray {
char* s[100];
int count;
};
void FreeStringArray(StringArray* psa) {
for (int i = 0; i < psa->count; i++)
free(psa->s[i]);
}
void PrintStringArray(StringArray* psa) {
for (int i = 0; i < psa->count; i++)
printf("[%d] : %s\n", i, psa->s[i]);
}
void InputBuffer(char* buf, int size) {
printf("๋ฌธ์์ด ์
๋ ฅ: ");
gets_s(buf, size);
}
int IsExit(const char* buf) {
return strcmp("exit", buf) == 0;
}
void AddStringArray(StringArray* psa, const char* buf) {
psa->s[psa->count] = (char*)malloc(strlen(buf) + 1);
strcpy(psa->s[psa->count], buf);
psa->count++;
}
void PrintMenu() {
printf("1. ๋ฌธ์์ด ์
๋ ฅ\n");
printf("2. ๋ฌธ์์ด ์ถ๋ ฅ\n");
printf("3. ๋ฌธ์์ด ๊ฒ์\n");
printf("4. ๋ฌธ์์ด ์ญ์ \n");
printf("0. ํ๋ก๊ทธ๋จ ์ข
๋ฃ\n");
}
void FindStringArray(StringArray* psa, const char* buf) {
for (int i = 0; i < psa->count; ++i) {
if (strcmp(psa->s[i], buf) == 0) {
printf("์ฐพ์ ๋ฌธ์์ด์ index : %d\n", i);
}
}
}
void DeleteStringArray(StringArray* psa, int num) {
psa->s[num] = psa->s[psa->count - 1];
psa->count--;
}
int main() {
struct StringArray sa;
sa = { 0 };
sa.count = 0;
int run = 1;
int num = 0;
while (run) {
PrintMenu();
switch (_getch()) {
case '1':
{
char buf[1000];
InputBuffer(buf, 1000);
AddStringArray(&sa, buf);
break;
}
case '2':
{
PrintStringArray(&sa);
break;
}
case'3':
{
char buf[1000];
printf("๊ฒ์: ");
InputBuffer(buf, 1000);
FindStringArray(&sa, buf);
break;
}
case'4':
PrintStringArray(&sa);
printf("์ญ์ ํ ์ธ๋ฑ์ค ์
๋ ฅ: \n");
num = _getch() - '0';
printf("์ ๊ฑฐ๋ ์ธ๋ฑ์ค : %d", num);
DeleteStringArray(&sa, num);
break;
case '0':
run = 0;
break;
}
//char buf[1000];
//InputBuffer(buf, 1000);
//if (IsExit(buf))
// run = 0;
//else {
// AddStringArray(&sa, buf);
//}
}
//PrintStringArray(&sa);
FreeStringArray(&sa);
}