Acceder a los caracteres de un array de punteros

Iniciado por David8, 6 Mayo 2014, 11:16 AM

0 Miembros y 2 Visitantes están viendo este tema.

David8

Por ejemplo si tengo:

#include<stdio.h>
#include<stdlib.h>

int main(void)
{
char **nombre;
nombre = (char **)malloc(10 * sizeof(char *));
nombre[0] = (char *)malloc(10 * sizeof(char));
gets(nombre[0]);   // ya se que no se debe usar

return EXIT_SUCCESS;
}

Pongamos ahora que introduzco por teclado "HOLA", ¿cómo hago para acceder por ejemplo a la 'H' o a cualquier otro caracter de nombre[0]

Un saludo

eferion

-> nombre es un vector de cadenas de caracteres
-> nombre[ i ] permite acceder a cualquiera de esas cadenas de caracteres
-> nombre[ i ][ j ] permite acceder a los caracteres de una de esas cadenas.

David8

Muchas gracias. La cosa es que lo había probado antes pero use la función puts() en vez de printf("%c", ...) y me daba error como es lógico.

Un saludo

eferion


David8

Cita de: eferion en  6 Mayo 2014, 11:54 AM
puts( nombres[0][0] ) debería funcionarte

Da el siguiente error:
Citar
invalid conversion from 'char' to 'const char*' [-fpermissive]

Un saludo

eferion

Perdón.

vale, cierto, tu quieres sacar un solo carácter... para eso tienes que usar putchar( nombres[ 0 ][ 0 ] )

puts es para cadenas de texto... es decir, puts( nombres[ 0 ] )