cadena de caracteres

Iniciado por Ander123, 6 Septiembre 2012, 09:37 AM

0 Miembros y 1 Visitante están viendo este tema.

Ander123

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.

#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();
     
     
}

avesudra

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').
Regístrate en