2012-02-18 150 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);