在iOS程序中将char数组与字符串进行比较

时间:2012-10-31 12:31:37

标签: objective-c ios xcode

  

可能重复:
  How to compare char* and NSString?

如果我有:

char XYZ[256]=""; 

如何在iOS Objective-C程序中将此char数组与另一个字符串(例如“testing”)进行比较?

3 个答案:

答案 0 :(得分: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'。

答案 1 :(得分: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更快!

答案 2 :(得分:0)

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

另一种方法是创建一个新的NSString并使用可竞争的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
}