elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  se me confunde las cadenas string
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: se me confunde las cadenas string  (Leído 1,187 veces)
AXA

Desconectado Desconectado

Mensajes: 11



Ver Perfil WWW
se me confunde las cadenas string
« en: 25 Octubre 2021, 16:05 pm »

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


En línea

Eternal Idol
Moderador
***
Desconectado Desconectado

Mensajes: 5.854


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: se me confunde las cadenas string
« Respuesta #1 en: 25 Octubre 2021, 16:13 pm »

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".


Código
  1. char *s[20]= {"hola", "chau" };
  2. 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.

Código
  1. char data[20] = "hola";
  2. printf(data);
  3. printf("\r\n%s\r\n", data);


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
AXA

Desconectado Desconectado

Mensajes: 11



Ver Perfil WWW
Re: se me confunde las cadenas string
« Respuesta #2 en: 25 Octubre 2021, 16:16 pm »

si me precipite. entendi. ahora me funca. vos sos español?
En línea

Eternal Idol
Moderador
***
Desconectado Desconectado

Mensajes: 5.854


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: se me confunde las cadenas string
« Respuesta #3 en: 25 Octubre 2021, 16:26 pm »

No; tengo una cita del General en la firma.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
.xAk.

Desconectado Desconectado

Mensajes: 33


F0r3v3R NeWbI3


Ver Perfil WWW
Re: se me confunde las cadenas string
« Respuesta #4 en: 20 Noviembre 2021, 04:48 am »

19 tienes que contar el fin el \0 es obligado al final de la cadena.
En línea


Eternal Idol
Moderador
***
Desconectado Desconectado

Mensajes: 5.854


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: se me confunde las cadenas string
« Respuesta #5 en: 20 Noviembre 2021, 08:05 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:
Código
  1. char *s[20]= {"hola", "chau" };
  2. printf("%d\r\n", sizeof(s));

¿No lo hace verdad? Lo que imprime es 20 * tamaño de puntero, 160 en x64 por ejemplo.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
.xAk.

Desconectado Desconectado

Mensajes: 33


F0r3v3R NeWbI3


Ver Perfil WWW
Re: se me confunde las cadenas string
« Respuesta #6 en: 20 Noviembre 2021, 09:35 am »

c|a|d|e|n|a|\0

¿no saben de que va?

https://www.uco.es/grupos/eatco/informatica/metodologia/cadenasyarrays.pdf
« Última modificación: 20 Noviembre 2021, 10:16 am por .xAk. » En línea


Eternal Idol
Moderador
***
Desconectado Desconectado

Mensajes: 5.854


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: se me confunde las cadenas string
« Respuesta #7 en: 20 Noviembre 2021, 09:57 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:

PD. YST: te falto un reservar un byte para el cero terminador de cadena.

https://foro.elhacker.net/buscador2-t259688.0.html;msg1262234#msg1262234
« Última modificación: 20 Noviembre 2021, 10:10 am por Eternal Idol » En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
.xAk.

Desconectado Desconectado

Mensajes: 33


F0r3v3R NeWbI3


Ver Perfil WWW
Re: se me confunde las cadenas string
« Respuesta #8 en: 20 Noviembre 2021, 10:26 am »

Así se entiende muy bien.
En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Comparación de cadenas (string)
Programación Visual Basic
el_lichal 4 1,735 Último mensaje 17 Noviembre 2005, 18:40 pm
por el_lichal
Leer cadenas tipo string con espacios
Programación C/C++
luisda2994 4 18,338 Último mensaje 24 Julio 2012, 19:55 pm
por luisda2994
(Solucionado) separar un string en varias cadenas (Split)
.NET (C#, VB.NET, ASP)
Eleкtro 5 3,206 Último mensaje 22 Noviembre 2012, 13:20 pm
por Novlucker
[C] Comparar 2 cadenas sin usar <string.h> « 1 2 »
Programación C/C++
Ataulfo7 16 7,766 Último mensaje 9 Abril 2015, 19:22 pm
por Miseryk
Concatenar cadenas o string verticalmente
Programación General
Flamer 6 2,395 Último mensaje 15 Julio 2017, 13:58 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines