switch case 문에서 배열 사용하기

조회수 3615회
char sel1[10];
int teamsel;

cin >> sel1;

switch (*sel1) {

    case "kt" : 
        teamsel = 1;

    case "Fin" :
        teamsel = 2;

}

처럼 사용하고 싶습니다. 어떻게 하면 좋을까요?

2 답변

  • 좋아요

    2

    싫어요
    채택 취소하기

    Switch 문에서 문자열 사용은 불가합니다. 지정 문자열을 가르키는 ID를 따로 만들어 비교하는게 좋습니다.

    #include <iostream>
    #include <map>
    
    #define BUFFER 256
    
    int main()
    {
        enum EnumTeam
        {
            eTeamKt = 1, eTeamFin
        };
        std::map<std::string, EnumTeam> teamList;
    
        char str[BUFFER] = "";
        int select = 0;
        teamList["Kt"] = eTeamKt;
        teamList["Fin"] = eTeamFin;
    
        std::cout << "Team Select >> ";
    
        std::cin >> str;    //  Input
    
        switch (teamList[str])
        {
        case eTeamKt:
            select = (int)eTeamKt;  break;
        case eTeamFin:
            select = (int)eTeamFin; break;
        }
    
        std::cout << "Team : " << select << std::endl;
    
        system("pause");
        return 1;
    }
    
    
    • (•́ ✖ •̀)
      알 수 없는 사용자
  • switch문은 문자열을 사용할 수 없습니다.

    숫자, 혹은 문자만 사용가능하며

    문자 역시 실제 내부적으로는 ascii 숫자값에 대입시켜서 적용됩니다.

    문자열을 사용하시려면 입력된 문자열을 if문을 이용하여

    별개의 정수값으로 변환시킨 뒤 스위치문에 사용하셔야 합니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)