Преобразовать NSString в массив char

У меня есть переменная типа char [] , и я хочу скопировать в нее значение NSString . Как я могу преобразовать NSString в массив символов?

47
задан JAL 18 March 2016 в 19:15
поделиться

1 ответ

Используйте -[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);
98
ответ дан 26 November 2019 в 19:22
поделиться