将char数组转换为NSString对象

时间:2012-02-18 16:31:50

标签: objective-c 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];

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

  

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

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

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

非常感谢提前!

2 个答案:

答案 0 :(得分:12)

改变这个:

char* name[100];

char name[100];

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

答案 1 :(得分:4)

使用NSLog打印时,会指定初始化NSString。

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