为什么我的strcmp总是返回true?

Ric*_*ick 0 iphone objective-c strncmp

我正在尝试将来自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];
Run Code Online (Sandbox Code Playgroud)

tam*_*gal 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";
}
Run Code Online (Sandbox Code Playgroud)

而不是:

DebugMsg.text = [NSString stringWithCString:"Correct answer"];
Run Code Online (Sandbox Code Playgroud)

你可以这样做:

DebugMsg.text = @"Correct answer";
Run Code Online (Sandbox Code Playgroud)