我正在尝试将来自iphone应用的用户文本输入与我声明的静态数组中的文本进行比较。它总是返回“真实”,即使文本不同。执行strncmp后,我会显示两个文本字段。对于人眼来说,它们就是我所期待的领域。我返回到屏幕的debugmsg显示了我期望的值,但比较始终是真实的。任何建议,将不胜感激。感谢。
if (strncmp(SymbolEntered.text,
[NSString stringWithCString:elements_table2[idx].element_symbol],2)==0)
{
DebugMsg.text = [NSString stringWithCString:"Correct answer"];
}
else
{
DebugMsg.text = [NSString stringWithCString:"Incorrect!"];
}
DebugMsg2.text = SymbolEntered.text;
DebugMsg3.text = [NSString stringWithCString:elements_table2[idx].element_symbol];
答案 0 :(得分:7)
你真的应该使用NSString
来实现这一点,CString
已经实现了大量的比较方法,而不是CString
(你为什么使用strcmp
?)。 NSString
不适用于if([SymbolEntered.text isEqualToString:[NSString stringWithCString:elements_table2[idx].element_symbol]]) {
DebugMsg.text = @"Correct answer";
} else {
DebugMsg.text = @"Incorrect answer";
}
。
DebugMsg.text = [NSString stringWithCString:"Correct answer"];
而不是:
DebugMsg.text = @"Correct answer";
你可以这样做:
{{1}}