jueves, 11 de junio de 2026

Contar la cantidad de dígitos que tiene un número en C

Código del ejercicio:

#include <stdio.h>
#include <locale.h>

int main(){
    setlocale(LC_CTYPE, "Spanish");
    int contador = 0, num;
    printf("Ingrese un número: ");
    scanf("%i", &num);
    while(num >= 1){
        contador++;
        num /= 10;
    }
    printf("El número ingresado tiene %i dígitos.", contador);
    return 0;
}

Definición de los códigos del ejercicio:

#include <stdio.h> --> significa "standard input-output header" (cabecera estándar E/S), es un archivo de encabezado que tiene la información necesaria para incluir las funciones relacionadas con la entrada/salida en nuestro programa. Ejemplo printf, scanf, etc.
#include <locale.h> --> especificador de configuración regional.
#include <string.h> --> declara un conjunto de funciones para trabajar con cadenas.
int --> dato entero de 32 bits.
main() --> es la primera función de cada programa C que es responsable de iniciar la ejecución y finalización del programa. Es una función especial que siempre comienza a ejecutar código desde el ' principal ' que tiene ' int ' o ' void ' como tipo de datos de retorno. En otras palabras, una función main() es un punto de entrada del código de programación para iniciar su ejecución.
return 0; --> devolver 0 en la función principal significa que el programa se ejecutó correctamente.
setlocale(); --> sirve para configurar nuestro programa acorde a los parámetros locales de la computadora donde se ejecuta el programa, uno de estos parámetros es el idioma.
LC_CTYPE --> selecciona la categoría de clasificación de caracteres del entorno local.
setlocale(LC_CTYPE, "Spanish"); --> dentro de las comillas del segundo parámetro colocaremos la palabra "Spanish" para que así se utilicen los parámetros hispanos por defecto.
printf() --> permite la aparición de valores numéricos, caracteres y cadenas de texto por pantalla.
scanf() --> permite entrar datos en la memoria del ordenador a través del teclado.
while --> el ciclo while recorre un bloque de código siempre que una condición específica sea verdadera.
>= --> el operador mayor que o igual ( >= ) devuelve true si el operando izquierdo es mayor o igual que el operando derecho, y en false caso contrario.
++ --> el operador de incremento ( ++ ) incrementa (suma uno a) su operando y devuelve un valor.
/= --> el operador de asignación de división ( /= ) divide el valor del operando derecho de una variable y asigna el resultado a la variable.
char a[size] = "hola"; --> una cadena de caracteres es un número de caracteres consecutivos (incluso ninguno) encerrado entre unos delimitadores determinados, que en el lenguaje C son las comillas dobles. Para definir variables de tipo cadena, estas se definen como vectores de caracteres, esto es, anteponiendo la palabra reservada char al identificador de la variable, y después entre corchetes la longitud máxima de cadena.
strlen() --> devuelve la longitud de una cadena de texto.

Explicación del Código:

#include <stdio.h>
#include <locale.h>

int main(){
    setlocale(LC_CTYPE, "Spanish");
    int contador = 0, num;

    printf("Ingrese un número: ");
    scanf("%i", &num);

    while(num >= 1){
        contador++;
        num /= 10;
    }

    printf("El número ingresado tiene %i dígitos.", contador);

    return 0;
}
    

#include <stdio.h>

Esta librería permite utilizar funciones de entrada y salida, como printf() y scanf().

#include <locale.h>

Esta librería permite configurar el idioma del programa.

int main()

Es la función principal donde inicia el programa.

setlocale(LC_CTYPE, "Spanish");

Configura el programa para trabajar con caracteres en español.

int contador = 0, num;

Se crean dos variables:

  • contador: almacena la cantidad de dígitos.
  • num: guarda el número ingresado por el usuario.

printf("Ingrese un número: ");

Muestra un mensaje pidiendo al usuario que ingrese un número.

scanf("%i", &num);

Guarda el número ingresado en la variable num.

while(num >= 1)

El ciclo se repite mientras el número sea mayor o igual a 1.

contador++;

Incrementa el contador en 1 para contar cada dígito.

num /= 10;

Divide el número entre 10 y elimina el último dígito.

  • 1234 → 123
  • 123 → 12
  • 12 → 1
  • 1 → 0

printf("El número ingresado tiene %i dígitos.", contador);

Muestra la cantidad de dígitos que tiene el número ingresado.

return 0;

Finaliza el programa correctamente.

Código del ejercicio: Otra forma de hacer

#include <stdio.h>
#include <locale.h>
#include <string.h>

int main(){
    setlocale(LC_CTYPE, "Spanish");
    char numero[50];
    printf("Ingrese un número: ");
    scanf("%s", numero);
    int contador = strlen(numero);
    printf("El número ingresado tiene %i dígitos.", contador);
    return 0;
}

Definición de los códigos del ejercicio:

#include <stdio.h> --> significa "standard input-output header" (cabecera estándar E/S), es un archivo de encabezado que tiene la información necesaria para incluir las funciones relacionadas con la entrada/salida en nuestro programa. Ejemplo printf, scanf, etc.
#include <locale.h> --> especificador de configuración regional.
#include <string.h> --> declara un conjunto de funciones para trabajar con cadenas.
int --> dato entero de 32 bits.
main() --> es la primera función de cada programa C que es responsable de iniciar la ejecución y finalización del programa. Es una función especial que siempre comienza a ejecutar código desde el ' principal ' que tiene ' int ' o ' void ' como tipo de datos de retorno. En otras palabras, una función main() es un punto de entrada del código de programación para iniciar su ejecución.
return 0; --> devolver 0 en la función principal significa que el programa se ejecutó correctamente.
setlocale(); --> sirve para configurar nuestro programa acorde a los parámetros locales de la computadora donde se ejecuta el programa, uno de estos parámetros es el idioma.
LC_CTYPE --> selecciona la categoría de clasificación de caracteres del entorno local.
setlocale(LC_CTYPE, "Spanish"); --> dentro de las comillas del segundo parámetro colocaremos la palabra "Spanish" para que así se utilicen los parámetros hispanos por defecto.
printf() --> permite la aparición de valores numéricos, caracteres y cadenas de texto por pantalla.
scanf() --> permite entrar datos en la memoria del ordenador a través del teclado.
while --> el ciclo while recorre un bloque de código siempre que una condición específica sea verdadera.
>= --> el operador mayor que o igual ( >= ) devuelve true si el operando izquierdo es mayor o igual que el operando derecho, y en false caso contrario.
++ --> el operador de incremento ( ++ ) incrementa (suma uno a) su operando y devuelve un valor.
/= --> el operador de asignación de división ( /= ) divide el valor del operando derecho de una variable y asigna el resultado a la variable.
char a[size] = "hola"; --> una cadena de caracteres es un número de caracteres consecutivos (incluso ninguno) encerrado entre unos delimitadores determinados, que en el lenguaje C son las comillas dobles. Para definir variables de tipo cadena, estas se definen como vectores de caracteres, esto es, anteponiendo la palabra reservada char al identificador de la variable, y después entre corchetes la longitud máxima de cadena.
strlen() --> devuelve la longitud de una cadena de texto.

Explicación del Código:

#include <stdio.h>
#include <locale.h>
#include <string.h>

int main(){
    setlocale(LC_CTYPE, "Spanish");

    char numero[50];

    printf("Ingrese un número: ");
    scanf("%s", numero);

    int contador = strlen(numero);

    printf("El número ingresado tiene %i dígitos.", contador);

    return 0;
}
    

#include <stdio.h>

Esta librería permite usar funciones de entrada y salida como printf() y scanf().

#include <locale.h>

Esta librería permite configurar el idioma para mostrar correctamente caracteres especiales.

#include <string.h>

Esta librería permite trabajar con cadenas de texto y usar funciones como strlen().

int main()

Es la función principal donde inicia la ejecución del programa.

setlocale(LC_CTYPE, "Spanish");

Configura el idioma español para manejar correctamente caracteres especiales.

char numero[50];

Declara una variable tipo texto llamada numero que puede almacenar hasta 50 caracteres.

printf("Ingrese un número: ");

Muestra un mensaje en pantalla solicitando al usuario ingresar un número.

scanf("%s", numero);

Guarda el número ingresado por el usuario dentro de la variable numero.

int contador = strlen(numero);

La función strlen() cuenta la cantidad de caracteres del texto almacenado en numero y guarda el resultado en la variable contador.

printf("El número ingresado tiene %i dígitos.", contador);

Muestra en pantalla la cantidad de dígitos del número ingresado.

return 0;

Finaliza correctamente la ejecución del programa.

No hay comentarios.:

Publicar un comentario

Convertir metros a kilómetros en C

Código del ejercicio: #include <stdio.h> int main (){     double metro, resultado;     printf ( "metro: " ); ...

Copyright ©2025 Ejercicios de programación. Todos los derechos reservados. ❤️