2012-02-18 9 views
7

मेरे असाइनमेंट के अनुसार मुझे NSString के साथ उपयोग करने के लिए एक कंसोल के माध्यम से उपयोगकर्ता से इनपुट लेना होगा।चार सरणी को एनएसएसटींग ऑब्जेक्ट में परिवर्तित करना

फिलहाल मैं

char* name[100]; // declaring char array 
NSString* firstName; // declaring the NSString 

printf("Please enter first name \n"); 
printf("=> "); 
scanf("%s", &name); 

firstName = [NSString stringWithCString:name encoding:NSASCIIStringEncoding]; 

यह काम करता है, फिर भी मैं इस चेतावनी हो रही है

असंगत सूचक प्रकार प्रकार 'स्थिरांक चार के पैरामीटर के लिए' चार [100] 'भेजने '

मैं कोड में इन त्रुटियों को नहीं आना चाहता , मैं यह भी उल्लेख करना चाहता हूं कि मैं एक्सकोड 4.2 का उपयोग कर रहा हूं।

क्या कोई मुझे बता सकता है क्यों मुझे ये त्रुटियां मिल रही हैं, और यदि मैं संभवतः उन पर काबू पा सकता हूं?

अग्रिम में बहुत धन्यवाद!

उत्तर

11

बदलें इस:

char* name[100]; 

char name[100]; 

पहले फार्म के लिए 100 संकेत char को की एक सरणी पैदा करता है। दूसरा एक 100 char तत्वों की एक सरणी बनाता है। क्या भ्रमित हो सकता है, क्या उस अंतिम मामले में name वास्तव में एक सूचक है, जो इन 100 char तत्वों में से पहला इंगित करता है।

2

एनएसएलओजी के साथ मुद्रित के रूप में एक एनएसएसटींग शुरू करने के लिए असाइन किया गया है।

NSLog(@"%s", arrayChar); 
NSString *str = [NSString stringWithFormat:@"%s", arrayChar]; 
NSLog(@"Array to String: %@",str); 
संबंधित मुद्दे