2012-10-31 41 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 
}