重複の可能性:
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だからといって、string.hを「#include」して「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
}