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

Daniel Pozo Chichon

Técnico en Desarrollo de Aplicaciones Informáticas (Grado superior)

Contenidos que te pueden interesar
Este sitio usa cookies para personalizar el contenido y los anuncios, ofrecer funciones de redes sociales y analizar el tráfico. Ninguna cookie será instalada a menos que se desplace exprésamente más de 400px. Leer nuestra Política de Privacidad y Política de Cookies. Las acepto | No quiero aprender cursos gratis. Sácame