Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Ander123 en 6 Septiembre 2012, 09:37 am



Título: cadena de caracteres
Publicado por: Ander123 en 6 Septiembre 2012, 09:37 am
Hola, no entiendo bien el funcionamiento de este for con la funcion strlen, se supone que sirve para contar el numero de letras pero aqui lo usa para separarlas, como es eso? pongo el codigo.

Código:
#include <stdio.h>
#include <string.h>


  main()
{
      int i;
      char nombre[30];
     
      printf("Escriba su nombre  ");
      scanf("%s", nombre);
      //printf("Has tecleado %d letras : ", strlen(nombre));
      for (i=0; i<strlen(nombre); i++)
      printf("%c ", nombre[i]);
      getchar();
      getchar();
     
     
}


Título: Re: cadena de caracteres
Publicado por: avesudra en 6 Septiembre 2012, 14:15 pm
Hola Ander123 en el for la funcion strlen es usada para no pasarse y que no de un SEGMENTATION_FAULT,  ya que el array de chars que declaras es de 30 pues llega hasta 29 pues strlen retorna todos los caracteres menos el de final de cadena '\0' , entonces el for de ejecutatia hasta que i llegase a 29 porque si llegase a 31 como no existe pues daria error.Todo esto suponiendo que metas un nombre de 30 carácteres (29 + '\0').