질문: ㅋㅋㅋ,default값,bye 를 입력시 case exit 로 입력이 됩니다. ;;어케해야 될까요?
소스 코드:
#include <stdio.h>
#include <string.h> //strcmp 문자열 비교함수
#define SIZE 4
enum name{hi, 안녕,안녕하세요,방가,exit,bye,잘가,님,ㅋㅋㅋ};
void main(void)
{
const char* ref_table[SIZE]={"hi", "안녕", "안녕하세요", "방가"};
const char* ref_table2[SIZE]={"exit","bye","잘가","ㅋㅋㅋ"};
const char* ref_table3[SIZE]={"님"};
char buf[20];
int find;
printf("Max:인사 안해\n");
start:
printf("My:");
scanf("%s", buf);
for(find=0 ; find<SIZE ; find++)
if(!strcmp(buf, ref_table[find])) break;
switch(find){
case hi :
printf("Max:넌 뭐야?! 인사 제대로 안해?\n");
goto start ;
case 안녕 :
printf("Max:어디서 나한테 안녕이야~(버력!)\n");
goto start ;
case 안녕하세요 :
printf("Max:그래 그래 나야 나~\n");
goto start ;
case 방가 :
printf("Max:어디서 방가야 방에나가~\n");
goto start ;
case ㅋㅋㅋ :
printf("Max:어디서 방가야 방에나가~\n");
goto start ;
case exit :
printf("Max:꺼져~!\n");
break;
case bye:
printf("Max:그래~꺼져~!\n");
break;
default: printf("Max:다시 말해줘? 무슨말이야?\n");
goto start ;
}
}
bye,잘가,님,ㅋㅋㅋ 는 find 값이 4가 되어서 exit 로 가겠네요.
SIZE 를 9로 늘리시고 ref_table[SIZE]={"hi", "안녕", "안녕하세요", "방가", "exit", "bye", "잘가", "ㅋㅋㅋ", "님"}; 으로 변경하시면 되겠네요.