0

我正在尝试将来自 iphone 应用程序的用户文本输入与我声明的静态数组中的文本进行比较。它总是返回“true”,即使文本不同。执行 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];
4

1 回答 1

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";
于 2011-12-28T15:59:53.343 回答