2010-09-27 12 views
7

मैं प्रोग्रामिंग उद्देश्य-सी के लिए जीएनयूस्टेप खोल का उपयोग कर रहा हूं। मैं स्ट्रिंग को एक चरित्र सेट में कनवर्ट करने में सक्षम हूं। लेकिन कंसोल में परिवर्तित चरित्र सेट मुद्रित करने में असमर्थ। कृपया इसे प्रिंट करने का एक तरीका बताएं। अग्रिम में धन्यवाद।उद्देश्य सी में characterSet मुद्रित करने के लिए कैसे?

उत्तर

14

यह यूनिकोड में पहले 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); 
    } 
} 

वहाँ, कुछ काफी मजेदार लग रही परिणाम हैं, उदाहरण के लिए यहाँ punctuationCharacterSet से 20 वर्णों का एक नमूना है।

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

+0

जवाब मेरा मानना ​​है कि के रूप में चिह्नित किया जाना चाहिए। –

+0

एक तेज़ समाधान है: http://stackoverflow.com/a/15741737/3050403 – kelin

संबंधित मुद्दे