如果我有:
char XYZ[256]="";
如何在iOS Objective-C程序中将此char数组与另一个字符串(例如“testing”)进行比较?
答案 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
}