domingo, 14 de junio de 2026

Contar cuantas veces se repite un carácter en una cadena en C

Código del ejercicio:

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

int main(){
    setlocale(LC_CTYPE, "Spanish");
    int i = 0, c = 0;
    char s[200], r;
    printf("Ingresar texto: ");
    gets(s);
    printf("Ingresar carácter: ");
    scanf("%c", &r);
    while(i < strlen(s)){
        if(s[i] == r){
            c++;
        }
        i++;
    }
    printf("El texto tiene %i carácteres %c", c, r);
    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.
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.
char n = 'N'; --> una constante tipo char se representa como un solo carácter encerrado entre comillas simples.
gets() --> lee una cadena de texto desde teclado.
while --> el ciclo while recorre un bloque de código siempre que una condición específica sea verdadera.
< --> el operador menor que ( < ) devuelve true si el operando izquierdo es menor que el operando derecho.
strlen() --> devuelve la longitud de una cadena de texto.
if --> use if para especificar un bloque de código que se ejecutará, si una condición especificada es verdadera.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
++ --> el operador de incremento ( ++ ) incrementa (suma uno a) su operando y devuelve un valor.

Explicación del Código:

Este programa permite ingresar un texto y un carácter. Luego recorre toda la cadena para contar cuántas veces aparece ese carácter dentro del texto.

Código del programa

#include <stdio.h> #include <locale.h> #include <string.h> int main(){ setlocale(LC_CTYPE, "Spanish"); int i = 0, c = 0; char s[200], r; printf("Ingresar texto: "); gets(s); printf("Ingresar carácter: "); scanf("%c", &r); while(i < strlen(s)){ if(s[i] == r){ c++; } i++; } printf("El texto tiene %i carácteres %c", c, r); return 0; }

Explicación simple de cada parte del código

  • #include <stdio.h>
    Permite utilizar funciones de entrada y salida como printf() y scanf().
  • #include <locale.h>
    Se usa para configurar el idioma español.
  • #include <string.h>
    Permite usar funciones para trabajar con cadenas, como strlen().
  • int main()
    Es la función principal donde inicia el programa.
  • setlocale(LC_CTYPE, "Spanish");
    Configura el programa para trabajar en español.
  • int i = 0, c = 0;
    i sirve para recorrer la cadena.
    c almacena la cantidad de veces que aparece el carácter.
  • char s[200], r;
    s almacena el texto ingresado.
    r guarda el carácter que se desea buscar.
  • printf("Ingresar texto: ");
    Muestra un mensaje solicitando un texto.
  • gets(s);
    Guarda el texto ingresado por el usuario.
  • printf("Ingresar carácter: ");
    Solicita el carácter que se desea buscar.
  • scanf("%c", &r);
    Guarda el carácter ingresado en la variable r.
  • while(i < strlen(s))
    Recorre toda la cadena carácter por carácter.
  • if(s[i] == r)
    Verifica si el carácter actual es igual al carácter buscado.
  • c++;
    Incrementa el contador cada vez que encuentra el carácter.
  • i++;
    Avanza a la siguiente posición de la cadena.
  • printf("El texto tiene %i carácteres %c", c, r);
    Muestra cuántas veces aparece el carácter en el texto.
  • return 0;
    Finaliza correctamente el programa.

Funcionamiento del programa

1. El usuario ingresa un texto.
2. Luego escribe un carácter.
3. El programa recorre toda la cadena.
4. Cada vez que encuentra el carácter, aumenta el contador.
5. Finalmente muestra cuántas veces se repite.

No hay comentarios.:

Publicar un comentario

Encontrar todas las posiciones de un carácter x de una cadena en Python

Código del ejercicio: s = input ( "Ingresar texto: " ) x = input ( "Ingresar carácter: ...

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