У меня есть переменная типа char []
, и я хочу скопировать в нее значение NSString
. Как я могу преобразовать NSString
в массив символов?
Используйте -[NSString UTF8String]
:
NSString *s = @"Some string";
const char *c = [s UTF8String];
Вы также можете использовать -[NSString cStringUsingEncoding:]
, если ваша строка имеет кодировку, отличную от UTF-8.
После того, как у вас есть const char *
, вы можете работать с ним аналогично массиву chars
:
printf("%c\n", c[5]);
Если вы хотите изменить строку, сделайте копию:
char *cpy = calloc([s length]+1, 1);
strncpy(cpy, c, [s length]);
// Do stuff with cpy
free(cpy);