我有这个代码试图比较Switch Case中的字符串:
char input[50+1];
fgets( input, 50, stdin );
switch (input) {
case "register": NSLog(@"Voce escolheu a opcao de cadastro");
break;
case "enter": NSLog(@"Voce escolheu a opcao de entrada");
break;
case "exit": NSLog(@"Voce escolheu a opcao de saida");
break;
}
这个命令给我一个错误,因为我相信我们不能在'case'命令之后写一个文本。我希望有人可以帮我解决这个问题,我相信还有其他方法可以使用字符串制作一个Switch Case,但是如何?
答案 0 :(得分:1)
查找选项非常有效。考虑:
NSArray *strings = @{@"string1", @"string2"};
NSUInteger index = [strings indexOfObject:input];
switch(index) {
case 0:
//stuff for string 1;
case 1:
// stuff for string 2:
case NSNotFound:
// not found;
}
答案 1 :(得分:0)
你不能。 Switch仅适用于整数。最好的选项是if-else语句链或查找表(例如NSDictionary)。