Los mejores cursos GRATIS © AulaFacil.com
  • [Entrada Profesores]
  • Certificaciones
  • [Mi AulaFácil]
domingo, 19 agosto 2018 español
Síguenos
Publica tu curso
¿Cómo Funciona AulaFácil?

Cadena de caracteres (Strings)

Las cadenas de caracteres no son más que un array de caracteres. De esta forma podemos conseguir que el usuario introduzca palabras, y no solo un carácter. 

Vamos a ver un ejemplo en el que se pide al usuario que introduzca su nombre y luego se muestra por pantalla. También se mostrará la longitud de esa cadena de caracteres (string). 

Para este tipo de dato string existe una librería con funciones útiles. Por ejemplo, podemos saber la longitud de las cadenas gracias a una función de esta librería, y como la vamos a utilizar en este ejemplo, vamos a introducir la librería con un include. La librería es string.h.

Veamos el código del ejemplo completo:

33-1

 

Lo primero es poner el nuevo include: 

#include <string.h>

Ahora crearemos las variables necesarias, una es un int, que será la longitud de la cadena introducida por el usuario. La otra es la cadena como tal, que se escribe de la siguiente forma:

char nombre[20];

Como veis es como un array pero de tipo char, o sea, de caracteres. Le damos un total de 20 caracteres, ya que solo le estamos pidiendo el nombre, sin apellidos. 

Para guardar el dato introducido por el usuario en nuestra string y mostrarla por pantalla se procede como habitualmente hacemos:

scanf("%s", &nombre);
printf("Te llamas: %s \n", nombre); //muestro nombre por pantalla
 
Lo único a tener en cuenta es que el "%" para las string es "%s". 
 
Bien, ya tenemos la string con el nombre del usuario y la hemos mostrado por pantalla, ya solo nos queda saber la longitud de la cadena y mostrarla también por pantalla. Esto se hace a través de una de las funciones que tiene la librería string. 
La llamada a la función es muy simple, recibe por parámetro la cadena en cuestión y nos devuelve un tipo int con la longitud de dicha cadena. La función se llama strlen.
longitud_string = strlen(nombre); //strlen cuenta caracteres
printf( "Tu nombre: %s, tiene %i caracteres. \n", nombre, longitud_string );
Asignamos el valor devuelto por la función a nuestra variable longitud_string,, y ya podemos mostrar la longitud por pantalla (recuerda que también puedes mostrarla directamente en el printf, sin necesidad de asignarle el valor a una variable).
 
Probamos el programa con diversos nombres para ver que funciona correctamente. Eso si, tened en cuenta que los nombres compuestos no los va a asignar bien, ya que C trabaja de forma que solo coge palabras, en cuanto encuentra un espacio en blanco ya no sigue más. Por ejemplo, si introducimos: "José Manuel", el programa solo nos mostrará "José". Esto se soluciona cambiando la función que asigna el valor introducido a nuestra variable. En vez de scanf, para string se recomienda gets.
 
Esta función es muy sencilla de utilizar, simplemente le pasamos por parámetro la variable a la cual queremos asignar el valor introducido: gets(nombre); sustituimos esa línea por la del scanf y ya veremos como ahora si que nos coge los valores aunque tengan espacios de por medio.
 

 

Vídeo que muestra el funcionamiento del programa:

String
Conoce al Autor/a:
  • Daniel Pozo Chichon   Contactar con el Autor
    Técnico en Desarrollo de Aplicaciones Informáticas (Grado superior)

    Tiene 2 contenidos
Gracias por compartir y gracias por enlazar la página
Compartir en Facebook
Acepto vuestra política de privacidad
Consentimiento Expreso para el tratamiento de datos de carácter personal recabados por vía electrónica (leer consentimiento)

¡Suscríbete GRATIS a nuestro boletín diario!:

Búsqueda personalizada
Existen nuevos mensajes en las siguientes salas de chat:

      Recibe gratis alertas en tu navegador, sin configuraciones ni registros. Más info...
      [No me interesa] | [Me Interesa]



      ¿Dudas? ¿Preguntas? Plantéalas en el foro
      Suscríbete Gratis al Boletín

      Escribir la dirección de Email:

      Acepto vuestra política de privacidad
      Consentimiento Expreso para el tratamiento de datos de carácter personal recabados por vía electrónica (leer consentimiento)

      Delivered by FeedBurner

      Destacamos
      Cargando datos...
      Buenos Artículos Diarios

      Sigue a AulaFácil en:

      Ránking Mundial Certificados
      Banner AulaFácil

      Este es un producto de AulaFacil S.L. - © Copyright 2009
      B 82812322 Apartado de Correos 176. Las Rozas 28230. Madrid (ESPAÑA)