ET IDOL.
tu ejemplo lo entendi. pero como no entiendo esto...
char *s[20]="hola";
printf(*s);
yo lo usaba asi. pero con strncopy como imprimo un char data[20]?
Primero no abras nuevos hilos para preguntar sobre el mismo tema por favor.
Eso son 20 punteros a cadena, el primer elemento del array (s[0] o *s) apunta a la primera que tiene asignado la cadena "hola".
char *s[20]= {"hola", "chau" };
printf("%s = %s\r\n%s = %s", *s, s[0], *(s+1), s[1]);
¿Como imprimir un array de caracteres? No tiene ningun misterio, en realidad es exactamente igual a como lo estabas haciendo.
char data[20] = "hola";
printf(data);
printf("\r\n%s\r\n", data);
si me precipite. entendi. ahora me funca. vos sos español?
No; tengo una cita del General en la firma.
19 tienes que contar el fin el \0 es obligado al final de la cadena.
Cita de: .xAk. en 20 Noviembre 2021, 04:48 AM
19 tienes que contar el fin el \0 es obligado al final de la cadena.
Son 20 punteros a cadena, si tu respuesta fuera correcta esto imprimiria 20 en pantalla:
char *s[20]= {"hola", "chau" };
printf("%d\r\n", sizeof(s));
¿No lo hace verdad? Lo que imprime es 20 * tamaño de puntero, 160 en x64 por ejemplo.
c|a|d|e|n|a|\0
¿no saben de que va?
https://www.uco.es/grupos/eatco/informatica/metodologia/cadenasyarrays.pdf
Cita de: .xAk. en 20 Noviembre 2021, 09:35 AM
c|a|d|e|n|a|\0
¿no saben de que va?
¿Que parte no entendes de que es un array de punteros a cadena? ¿Ves el *? Tal vez asi lo entiendas mejor:
char *s[20];
Un puntero a cadena:
char *s;
20 punteros a cadena:
char *s[20];
Una cadena de 20 caracteres (incluyendo el cero terminador o caracter nulo, si, obviamente):
char s[20];
Y si, alguna idea al respecto tengo:
Cita de: Eternal Idol en 30 Junio 2009, 21:14 PMPD. YST: te falto un reservar un byte para el cero terminador de cadena.
https://foro.elhacker.net/buscador2-t259688.0.html;msg1262234#msg1262234
Así se entiende muy bien.