可能重复:
如何比较 char* 和 NSString?
如果我有:
char XYZ[256]="";
如何在 iOS Objective-C 程序中将此 char 数组与另一个字符串(例如“testing”)进行比较?
可能重复:
如何比较 char* 和 NSString?
如果我有:
char XYZ[256]="";
如何在 iOS Objective-C 程序中将此 char 数组与另一个字符串(例如“testing”)进行比较?
使用strcmp
char XYZ[256] = "";
char *string = "some other string";
int order = strcmp(XYZ, string);
返回值
strcmp() 和 strncmp() 函数根据字符串 s1 大于、等于或小于字符串 s2 返回一个大于、等于或小于 0 的整数。比较是使用无符号字符完成的,因此\200' is greater than
\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
要快得多!
仅仅因为它是 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
}