как напечатать набор символов в цели c? - PullRequest
8 голосов
/ 27 сентября 2010

Я использую оболочку GNUstep для программирования target-c.Я могу преобразовать строку в набор символов.Но не удалось распечатать преобразованный набор символов в консоли.Пожалуйста, скажите мне способ напечатать это.Заранее спасибо.

1 Ответ

17 голосов
/ 06 августа 2013

Это будет делать первые 65536 символов в юникоде, что подходит для большинства ситуаций.Я считаю, что Юникод может пойти намного выше (2 ^ 32?), Но это заняло бы намного больше времени для регистрации.

+ (void) logCharacterSet:(NSCharacterSet*)characterSet
{
    unichar unicharBuffer[20];
    int index = 0;

    for (unichar uc = 0; uc < (0xFFFF); uc ++)
    {
        if ([characterSet characterIsMember:uc])
        {
            unicharBuffer[index] = uc;

            index ++;

            if (index == 20)
            {
                NSString * characters = [NSString stringWithCharacters:unicharBuffer length:index];
                NSLog(@"%@", characters);

                index = 0;
            }
        }
    }

    if (index != 0)
    {
        NSString * characters = [NSString stringWithCharacters:unicharBuffer length:index];
        NSLog(@"%@", characters);
    }
}

Есть некоторые довольно забавные результаты, например, здесь пример из 20 символов изpunctuationCharacterSet.

100 * ༐ * ༅ 100 100 100 100 100

...