블로그 이미지
하루, 글. 그림. 영상매체. 표현을 도와주는 기기들. 도전 중. 동화다아아
    동화다아아

    카테고리

    분류 전체보기 (176)
    잡담 (1)
    IT 기기-리뷰&뉴스 (7)
    리뷰 - 도서 (1)
    리뷰 - 영상 (0)
    리뷰 - 그림/음악 (1)
    내장형 하드웨어 (163)
    Total
    Today
    Yesterday

    - 열거형의 활용


    #include<stdio.h>

    const char*day[] = {
            
    "월요일"
            
    "화요일",
            
    "수요일",
            
    "목요일",
            
    "금요일",
            
    "토요일",
            
    "일요일",            
              
    0};
    void MONDAY();
    void TUESDAY();
    void WENDSDAY();
    void THURSDAY();
    void FRIDAY();
    void SATURDAY();
    void SUNDAY();

    enum day_num
    {
            MON,
            TUE,
            WED,
            THU,
            FRI,
            SAT,
            SUN,

            END
    };
    int main()
    {
            
    int iNum;
            
    for(iNum = MON; END > iNum; ++iNum)
            {
                    printf(
    "%s\n", day[iNum]);
            }
            
    return 0;
    }

    ⇒ 출력 결과         

     




    #include<stdio.h>

    void MONDAY();
    void TUESDAY();
    void WENDSDAY();
    void THURSDAY();
    void FRIDAY();
    void SATURDAY();
    void SUNDAY();

    struct MessageMap
    {
            
    const char *name;
            
    void (*fp)();    
    };

    struct MessageMap map[]={
            {
    "월요일", MONDAY},
            {
    "화요일", TUESDAY},
            {
    "수요일", WENDSDAY},
            {
    "목요일", THURSDAY},
            {
    "금요일", FRIDAY},  
            {
    "토요일", SATURDAY},
            {
    "일요일", SUNDAY},
            {
    00}
    };
    enum day_num
    {
            MON,
            TUE,
            WED,
            THU,
            FRI,
            SAT,
            SUN,

            END
    };

    int main()
    {
            
    int iCnt; // 요일을 찾는다. 찾으면 해당하는 번호의 함수를 부르는 역활.
            
    int  iRet;
            
    int  iRet2;
            
    char buff[10];
      
      
            
    while(1)
            {
                    write(
    1"요일 입력>"10);    
                    iRet 
    = read(0, buff, sizeof(buff));
                    buff[iRet-
    1= 0;
                    iRet 
    = strlen(buff); // buff 길이를 확인
                    
    if(iRet == 0// 입력값이 없으면 종료
                    
    {
                            
    break;
                    }
                    
    for(iCnt = MON;iCnt<END;++iCnt)
                    {
                            
    //iRet = strcmp(map[iCnt].name, buff);
                            
    iRet2 = strncmp(map[iCnt].name, buff, iRet);
                            
    if(iRet2 == 0)
                            {
                                    
    break;
                            }      
                    }  
                    
    if(iCnt >= END) // 요일이 정확히 입력 안되면 위로 다시 되돌린다.
                    
    {
                            
    continue;
                    }
                    map[iCnt].fp(); 
    //
            
    }
      
            
    return 0;
    }
    void MONDAY()
    {
            printf(
    "%s(MONDAY)\n", map[MON].name);
            
    return ;
    }
    void TUESDAY()
    {
            printf(
    "%s(THESDAY)\n", map[TUE].name);
            
    return ;
    }
    void WENDSDAY()
    {
            printf(
    "%s(WENDSDAY)\n", map[WED].name);
            
    return ;
    }
    void THURSDAY()
    {
            printf(
    "%s(THURSDAY)\n", map[THU].name);
            
    return ;
    }
    void FRIDAY()
    {
            printf(
    "%s(FRIDAY)\n", map[FRI].name);
            
    return ;
    }
    void SATURDAY()
    {
            printf(
    "%s(SATURDAY)\n", map[SAT].name);
            
    return ;
    }
    void SUNDAY()
    {
            printf(
    "%s(SUNDAY)\n", map[SUN].name);
            
    return ;
    }
    ⇒ 출력 결과
             

     





    Posted by 동화다아아
    , |

    최근에 달린 댓글

    최근에 받은 트랙백

    글 보관함