2010-09-27 23 views
7

Programlama amacı için GNUstep kabuğunu kullanıyorum c. Dizeyi bir karakter kümesine dönüştürebiliyorum. Ancak dönüştürülen karakter kümesini konsolda yazdıramıyor. Lütfen bana yazdırmanın bir yolunu söyle. Şimdiden teşekkürler.characterSet nesnel c nasıl yazdırılır?

cevap

14

Bu, çoğu durumda yapılacak olan unicode içindeki ilk 65536 karakterini yapar. Unicode'un çok daha yüksek gidebileceğine inanıyorum (2^32?), Ancak bu işlem daha uzun sürecek.

+ (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); 
    } 
} 

örneğin burada punctuationCharacterSet 20 karakterden oluşan bir örneğidir, bazı oldukça eğlenceli görünümlü sonuç yok.

་. ༉ ༊ ་ ་ ་.་.་. ་ ་. ༒ ་,()() ྅

+0

inanıyorum yanıt olarak işaretlenebilir olmalı. –

+0

Daha hızlı bir çözüm var: http://stackoverflow.com/a/15741737/3050403 – kelin

İlgili konular