switch case 문에서 배열 사용하기
조회수 3615회
char sel1[10];
int teamsel;
cin >> sel1;
switch (*sel1) {
case "kt" :
teamsel = 1;
case "Fin" :
teamsel = 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문을 이용하여
별개의 정수값으로 변환시킨 뒤 스위치문에 사용하셔야 합니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력