2012-02-18 53 views
7

Theo bài tập của tôi, tôi phải nhận đầu vào từ người dùng qua bảng điều khiển để sử dụng với NSString.Chuyển mảng char thành đối tượng NSString

Tại thời điểm này tôi có

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]; 

này hoạt động, tuy nhiên tôi nhận được cảnh báo này

loại con trỏ không tương thích gửi 'char [100]' để tham số có kiểu 'const char '

Tôi không muốn gặp phải các lỗi này trong mã , Tôi cũng muốn đề cập đến tôi đang sử dụng Xcode 4.2.

Bất cứ ai có thể giải thích cho tôi lý do tại sao Tôi gặp phải những lỗi này và nếu tôi có thể khắc phục chúng?

Rất cám ơn trước!

Trả lời

11

Thay đổi này:

char* name[100]; 

để

char name[100]; 

Các hình thức đầu tiên tạo ra một mảng của 100 con trỏ để char. Phần thứ hai tạo một mảng gồm 100 char phần tử. Điều gì có thể gây nhầm lẫn, là name trong trường hợp cuối cùng đó, thực ra là một con trỏ, trỏ đến đầu tiên trong số các thành phần 100 char này.

2

Được in bằng NSLog được gán để khởi tạo một NSString.

NSLog(@"%s", arrayChar); 
NSString *str = [NSString stringWithFormat:@"%s", arrayChar]; 
NSLog(@"Array to String: %@",str); 
Các vấn đề liên quan