строка в массив символов - PullRequest
3 голосов
/ 17 октября 2011

У меня есть что-то вроде:

NSString *str = "hello this is 123.";

Я хочу, чтобы он был помещен в массив символов, чтобы я мог читать его символ за символом.

Так было бы как:

charArray[0] = 'h'
charArray[1] = 'e'
charArray[2] = 'l'

и т. Д. *

Как преобразовать строку в массив char и как я могу прочитать каждую ячейку массива char?

Ответы [ 3 ]

4 голосов
/ 21 декабря 2012

Попробуйте что-то вроде этого и обратите внимание, что это заглавная буква C, которая действительно меня напортачила со специальными символами.

NSMutableArray *array = [NSMutableArray array];
for (int i = 0; i < [string length]; i++) {
    [array addObject:[NSString stringWithFormat:@"%C", [string characterAtIndex:i]]];
}
3 голосов
/ 17 октября 2011
NSString *s = @"hello this is 123.";
const char *c = [s UTF8String];

Вы также можете использовать - [NSString cStringUsingEncoding:], если ваша строка закодирована не в формате UTF-8.

1 голос
/ 17 октября 2011

Nsstring может содержать символы utf 8 или utf 16, которые не помещаются в char, поэтому может быть плохой идеей получить доступ к базовому массиву char.

Если вы не хотите, вы можете использовать сообщение characterAtIndex для доступа к данному символу и перебора строки.

...