NSString to char [] в Objective-c - PullRequest
       22

NSString to char [] в Objective-c

0 голосов
/ 28 сентября 2011

Я должен преобразовать NSString в символ с нулевым окончанием [].

То, как я это делаю, выглядит так:

NSString *regC = @"1234"    
char REG[[regC length] +1];
BOOL result = [regC getCString:REG maxLength:32 encoding:NSUTF8StringEncoding];

и я не знаю, правильно ли этоway.

REG должен быть массивом из 5 символов, с последним нулем /

Спасибо.

Ответы [ 2 ]

2 голосов
/ 28 сентября 2011
char *REG = [@"test" UTF8String];

Вы не можете выделить длину символа [] во время выполнения, если вы не используете malloc / free. но описанным выше способом вам не нужно управлять памятью.

1 голос
/ 28 сентября 2011

Это правильный способ преобразования, если вы используете символы ASCII в строке NSString.Они представлены как однобайтовые символы в кодировке UTF-8.Если вы используете символы не ASCII, вы должны увеличить REG.

Upd: еще один: вы должны поместить свой фактический размер буфера в параметр "maxLength:", чтобы избежать переполнения буфера.Не 32, а [длина regC] + 1.

...