2012-10-31 23 views
0

可能重复:
How to compare char* and NSString?比较字符串的字符数组中的iOS程序

如果我有:

char XYZ[256]=""; 

我怎么能比这个字符数组用另一个字符串(如“测试”)在iOS Objective-C程序中?

+0

我认为我的帐户已被暂停,由于我张贴了这个问题发表新的问题。 我阅读了常见问题解答,它要求我重新填写错误的问题,但实际上我不知道如果我想重新启用我的帐户该怎么办,问题已经被提问并回答了,我知道我发布了错误的问题,但我没有机会解决它。在上次登录后的几天后,我的帐户被锁定了...请您帮助我让我知道如何重新启用我的帐户,非常感谢! – RRN

回答

3

使用strcmp

char XYZ[256] = ""; 
char *string = "some other string"; 

int order = strcmp(XYZ, string); 

返回值
的的strcmp()和STRNCMP()函数返回一个整数大于,等于,或小于0,根据作为字符串s1是大于,等于或小于字符串s2。使用无符号字符完成比较,以便\200' is greater than \ 0'。

+0

非常感谢! – RRN

0

您还可以将它们备份到的NSString,这使得大量的开销,但带来了你的字符串Objective-C的对象:

char XYZ[256] = ""; 
NSString *s = [[NSString alloc] initWithBytes:XYZ length:strlen(XYZ) encoding:[NSString defaultCStringEncoding]]; 
NSString *testing = @"testing"; 
if ([testing compare:s] == NSOrderedSame) { 
    NSLog(@"They are hte same!"); 
} 

注意strcmp是快了很多!

0

仅仅因为它是iOS并不意味着你不能“#include”string.h并使用“strcmp”(现在如上所述)。

另一种方法是创建一个新的NSString和使用comperable iOS的Objective-C的通话进行比较:

NSString myString = [NSString stringWithCString:XYZ encodingNSASCIIStringEncoding]; 

if(YES == [myString isEqualToString:@"testing"]){ 
    // Perform Code if the strings are equal 
}else{ 
    // Perform Code if the strings are NOT equal 
}