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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  size_t length en lenguaje C.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: size_t length en lenguaje C.  (Leído 2,755 veces)
NOB2014


Desconectado Desconectado

Mensajes: 366



Ver Perfil
size_t length en lenguaje C.
« en: 1 Marzo 2016, 22:15 pm »

Hola, gente.
Lamento molestarlos por tan poco, en realidad tendría que tener un "amigo" para hacerle estas consultas tan poco relevantes, pero lamentablemente y a pesar de tener mucho tiempo en los foros no lo consigo todavía, bueno basta de prólogo y al grano, alguien me podría decir que hacen las 2 lineas que resalto a continuación. -

size_t length = strlen(nombre);
nombre[length-1] = nombre[length];

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main( void ){
  5. char inicial[2] = {0}, nombre[80] = {0};
  6.  
  7.  
  8. printf("\n Ingrese su primer inicial....: ");
  9. fgets(inicial, sizeof(inicial), stdin);
  10. fflush(stdin);
  11.  
  12. printf("\n Ingrese su nombre............: " );
  13. fgets(nombre, sizeof(nombre), stdin);
  14.  
  15. size_t length = strlen(nombre);
  16. nombre[length-1] = nombre[length];
  17.  
  18.  
  19. if(inicial[0] != nombre[0])
  20. printf("\n%s,Usted consiguió su aparejo mal..\n", nombre);
  21. else
  22. printf("\n Bien, %s. Ingreso correcto. Bien hecho!\n", nombre);
  23. return 0;
  24. }

Saludos.
Daniel



En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
MAFUS


Desconectado Desconectado

Mensajes: 1.527



Ver Perfil
Re: size_t length en lenguaje C.
« Respuesta #1 en: 1 Marzo 2016, 22:34 pm »

Lo que hace es retrasar una posición el carácter de fin de cadena '\0' sustituyendo al carácter de nueva línea.
fgets guarda las cadenas de esta forma, si la ha conseguido desde stdin y la ha leído toda:
"Una cadena de ejemplo\n\0"


En línea

NOB2014


Desconectado Desconectado

Mensajes: 366



Ver Perfil
Re: size_t length en lenguaje C.
« Respuesta #2 en: 1 Marzo 2016, 22:59 pm »

Hola,
A ver si entendí, la primera línea lo que hace es guardar en length el largo de la cadena (tampoco estoy seguro) y la segunda no la entiendo porque no comprendo como copia el  \0.-

Daniel
En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
MAFUS


Desconectado Desconectado

Mensajes: 1.527



Ver Perfil
Re: size_t length en lenguaje C.
« Respuesta #3 en: 2 Marzo 2016, 11:11 am »

Sí, la primera da la longitud de la cadena hasta el caracter '\0', no incluido. Si lo cuentas a mano verás que el caracter nombre[length] es el '\0' y el caracter nombre[length-1] es '\n'. La siguiente línea de código sustituye el caracter '\n' por el '\0'.
En línea

NOB2014


Desconectado Desconectado

Mensajes: 366



Ver Perfil
Re: size_t length en lenguaje C.
« Respuesta #4 en: 2 Marzo 2016, 13:56 pm »

Hola, MAFUS . -
Una reflección, por momentos que paciencia tienen Uds. mira que era sencillo pero no me caía la ficha, dejo una imagen por si algún "lento" como Danielito lee este hilo. -



Un abrazo, Daniel. -
En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
furciorifa

Desconectado Desconectado

Mensajes: 94


Ver Perfil
Re: size_t length en lenguaje C.
« Respuesta #5 en: 6 Marzo 2016, 15:14 pm »

Pues ya te respondieron,  cabe destacar que el que programó esto no se destaca por su experiencia, debido a que usa un arreglo para utilizar un caracter es redundante,  el uso de fflush con fgets es irrelevante ya que como se aprecia fgets toma el salto de línea, otra cosa tu cuestión de las 2 líneas que no entendiste eran innecesarias en el código ya que sólo iba a comparar los primeros índices

En línea

NOB2014


Desconectado Desconectado

Mensajes: 366



Ver Perfil
Re: size_t length en lenguaje C.
« Respuesta #6 en: 6 Marzo 2016, 21:48 pm »

Hola, amigo, muchas gracias por tu participación y aclaraciones, en cuanto al manual que estoy consultando en este momento es: BeginningC From Novice to Professional, 4th Edition y me parece que tiene cosas interesantes, eso no quita que me parezca bueno a mí que estoy estudiando y sea mediocre para alguien como voz que si no leí mal das clases de programación. -

Saludos.
Daniel

En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
furciorifa

Desconectado Desconectado

Mensajes: 94


Ver Perfil
Re: size_t length en lenguaje C.
« Respuesta #7 en: 7 Marzo 2016, 06:53 am »

Es muy bueno el libro, el problema es que a veces se basan en programar C para Windows y no un ANSI C limpio, C es muy portable, sabiendo hacer bien las cosas, te recomiendo más Deitel, para punteros y cosas más avanzadas, Understanding and Using Pointers in C
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Stream y su propiedad length!!!!
.NET (C#, VB.NET, ASP)
MANULOMM 1 1,687 Último mensaje 15 Enero 2008, 05:19 am
por MANULOMM
amigos una pregunta sobre una red <length: 0>
Wireless en Linux
lealesdibua 7 8,014 Último mensaje 31 Agosto 2010, 23:53 pm
por jcrack
strlen() y .length()
Programación C/C++
erest0r 4 3,261 Último mensaje 17 Septiembre 2013, 08:25 am
por erest0r
Dudas con size_t en lenguaje C. « 1 2 »
Programación C/C++
NOB2014 10 3,927 Último mensaje 24 Enero 2016, 15:30 pm
por NOB2014
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines