AprenderC
← Todas las lecciones

Contar las letras

El texto también es una fila de cajitas: una letra en cada una.

1Por qué

En C el texto no es una cosa aparte. Una palabra es un arreglo de letras: una letra por cajita, igual que los números de la lección anterior.

Eso deja una pregunta incómoda. Un arreglo de números tiene el tamaño que le diste al crearlo, pero ¿dónde termina una palabra? Si llega de fuera, puede tener cualquier largo.

C lo resuelve con un truco que vas a ver en todos los talleres del semestre: al final de cada palabra guarda una cajita más, con el valor cero. Se escribe '\0', no se ve al imprimir, y significa «aquí se acabó».

Por eso contar las letras no es mirar un número guardado en alguna parte: es avanzar cajita por cajita hasta topar con ese cero. Y por eso, si esa marca falta, el programa sigue leyendo más allá de la palabra y saca lo que hubiera ahí — que es uno de los fallos que este taller te va a saber explicar cuando ocurra.

2Míralo andar

Este programa funciona. Léelo, y después ejecútalo sin cambiar nada.

#include <stdio.h>
int main(void)
{
char palabra[4] = "sol";
int largo = 0;
while (palabra[largo] != 0)
{
largo = largo + 1;
}
printf("sol tiene %d letras\n", largo);
return 0;
}

3Ahora tú

Haz que el programa escriba: hola tiene 4 letras

#include <stdio.h>
int main(void)
{
char palabra[5] = "hola";
int largo = 0;
while (palabra[largo] != 0)
{
}
printf("hola tiene %d letras\n", largo);
return 0;
}

↖︎ Tu línea va aquí. Sin ella el ciclo no avanza y no termina nunca.

Ejecutar

Lo que dice tu programa

↖︎ Escribe tu parte y dale a Ejecutar

Qué pasó

Aquí te aviso si tu programa hace algo raro.

    4Qué guarda tu programa

    La pila

    ↖︎ Ejecuta el programa para ver qué pasa por dentro