2012-02-18 114 views
7

根据我的任务,我必须通过一个控制台接受用户的输入,以便与NSString一起使用。将char数组转换为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]' 以型 “为const char的参数'

我不想让这些错误出现在代码中,我想还提到我正在使用Xcode 4.2。

任何人都可以向我解释为什么我得到这些错误,如果我可以克服它们?

非常感谢提前!

回答

11

更改此:

char* name[100]; 

char name[100]; 

第一种形式创建的100个指针char阵列。第二个创建一个100 char元素的数组。可能会令人困惑的是,在最后一种情况下,name实际上是指针,指向这些元素中的第一个。

2

用NSLog打印分配来初始化一个NSString。

NSLog(@"%s", arrayChar); 
NSString *str = [NSString stringWithFormat:@"%s", arrayChar]; 
NSLog(@"Array to String: %@",str);