2012-02-18 13 views
7

Según mi tarea, tengo que recibir la entrada de un usuario a través de una consola para usarla con NSString.Conversión de matriz de caracteres en el objeto NSString

Por el momento tengo

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

Esto funciona, sin embargo yo estoy haciendo esta advertencia

tipos de puntero incompatibles envían 'Char [100]' al parámetro de tipo 'const char '

No quiero que estos errores aparezcan en el código , Me gustaría mencionar que estoy usando Xcode 4.2.

¿Alguien me puede explicar ¿Por qué obtengo estos errores, y si puedo superarlos?

¡Muchas gracias de antemano!

Respuesta

11

cambiar esta situación:

char* name[100]; 

a

char name[100]; 

La primera forma se crea una matriz de 100 punteros a char. El segundo crea una matriz de 100 elementos char. Lo que podría ser confuso, es que name en ese último caso, es de hecho un puntero, apuntando al primero de estos 100 char elementos.

2

Al estar impreso con NSLog, se le asigna inicializar un NSString.

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