将char数组转换为NSString对象

Dav*_*ans 11 c objective-c nsstring

根据我的任务,我必须通过控制台从用户那里获取输入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];
Run Code Online (Sandbox Code Playgroud)

这有效,但是我收到了这个警告

不兼容的指针类型将'char [100]'发送到'const char ' 类型的参数

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

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

提前谢谢了!

mvd*_*vds 13

改变这个:

char* name[100];
Run Code Online (Sandbox Code Playgroud)

char name[100];
Run Code Online (Sandbox Code Playgroud)

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


小智 5

正如打印的 NSLog 被分配来初始化一个 NSString。

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