2010-12-23 77 views
0
struct DATA 
{ 
    unsigned char USERNAME[32]; 
}; 

我想複製一個NSString結構DATA.USERNAME,如何做到這一點?NSString爲char []?

回答

2

您可以使用-[NSString UTF8String]方法來獲取NSString的C字符串。然後,您可以使用strncpy(DATA.USERNAME, [mystring UTF8String], 32);將該字符串複製到結構中。

+1

另外,如果你需要USERNAME爲空終止,添加`DATA.USERNAME [31] ='\ 0';` – cobbal 2010-12-23 04:59:44

+0

@cobbal:好點,錯過了。 – 2010-12-24 06:03:05

0

您首先需要知道預期的編碼。 NSString可以在各種編碼中生成字節。然後你將一個指向USERNAME數組的指針傳遞給getCString:maxLength:encoding:。因此,舉例來說,如果你想NSString的myCocoaString的內容爲UTF-8複製到數據結構稱爲myData的用戶名字段中,你會怎麼做:

BOOL success = [myCocoaString getCString:myData.USERNAME maxLength:32 encoding:NSUTF8StringEncoding]; 
NSLog(@"Was %@ to store string contents in USERNAME!", success ? @"able" : @"not able");