elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Encontrar cuantas veces se repite una letra en una cadena en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Encontrar cuantas veces se repite una letra en una cadena en C  (Leído 18,009 veces)
fernando1122

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Encontrar cuantas veces se repite una letra en una cadena en C
« en: 15 Octubre 2017, 23:45 pm »

Hola, soy nuevo programando y necesito hacer un programa que muestre las veces que una letra se repite en una cadena. Lenguaje C
Gracias :-(


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Encontrar cuantas veces se repite una letra en una cadena en C
« Respuesta #1 en: 15 Octubre 2017, 23:53 pm »

hola! se resuelen dudas, no se entregan codigos listos

el tema fue movido a su respectivo subforo

en general, un cliclo que recorra la cadena y una variable para contar, basta


« Última modificación: 15 Octubre 2017, 23:56 pm por engel lex » En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
fernando1122

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Encontrar cuantas veces se repite una letra en una cadena en C
« Respuesta #2 en: 16 Octubre 2017, 01:38 am »

cuando ejecuto me aparece "segmentation fault"
Código:
#include <stdio.h>

int find(char *cadena, char letra_a_contar)
{
    int acc = 0;
    for(int i = 0; 100 ; i++) {
        if (cadena[i+1] == letra_a_contar) {
            acc = acc+1;
        }
    }
    return acc;
}
int main()
{
    char *cad = NULL;
    char letra_a_buscar = 0;
    int res = 0;
    printf("Escribe la cadena:");
    scanf("%s", cad);
    printf("Escribe la letra que quieres contar:");
    scanf("%c", & letra_a_buscar);
    res = find(cad, letra_a_buscar);
    printf("%i", res);
    return 0;
}
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Encontrar cuantas veces se repite una letra en una cadena en C
« Respuesta #3 en: 16 Octubre 2017, 01:44 am »

tienes errores...

Código:
for(int i = 0; 100 ; i++) {

el segundo argumento simplemente pusiste 100.... eso debe ser i<100 (si no, esto será un ciclo infinito)

Código:
char *cad = NULL;

declaraste el puntero cad, pero nunca le alojaste memoria para almacenar, esto es lo que te da el segmentation fault... estás intentando escribir en la posición de memoria NULL
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
fernando1122

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Encontrar cuantas veces se repite una letra en una cadena en C
« Respuesta #4 en: 16 Octubre 2017, 01:48 am »

entonces en lugar de NULL que me recomiendas poner?
el programa donde estoy trabajando ( cloud 9 ) me recomendo NULL
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Encontrar cuantas veces se repite una letra en una cadena en C
« Respuesta #5 en: 16 Octubre 2017, 01:57 am »

Claro la recomendación es null, pero debes apartar luego el espacio... si quieres reservar el espacio inicialmente

Código
  1. char cad[100];

recuerda que de 100, puedes usar 99 ya que por lo general siempre al final del texto va \0 que es el caracter de fin de texto
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
fernando1122

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Encontrar cuantas veces se repite una letra en una cadena en C
« Respuesta #6 en: 16 Octubre 2017, 03:04 am »

he cambiado mi programa y ahora si me pide la cadena, el tamaño, y la letra que quiero contar pero me arroja como resultado 0
¿alguna sugerencia?
Código:
#include <stdio.h>

int find(char *cadena, char letra_a_contar, int size)
{
    int acc = 0;
    for(int i = 0; i < size ; i++) {
        if (cadena[i] == letra_a_contar) {
            acc = acc+1;
        }
    }
    return acc;
}
int main()
{
    char cad[9];
    int size;
    int letra_a_buscar;
    int res = 0;
    printf("Escribe la cadena:");
    scanf("%s", cad);
    printf("dame el tamaño de tu cadena:");
    scanf("%i",&size);
    printf("Escribe la letra que quieres contar:");
    scanf("%i",&letra_a_buscar);
    res = find(cad, letra_a_buscar, size);
    printf("%i", res);
    return 0;
}


« Última modificación: 16 Octubre 2017, 03:15 am por fernando1122 » En línea

fernando1122

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Encontrar cuantas veces se repite una letra en una cadena en C
« Respuesta #7 en: 16 Octubre 2017, 03:33 am »

¿como se puede guardar una letra en una variable?
En línea

polako

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Encontrar cuantas veces se repite una letra en una cadena en C
« Respuesta #8 en: 12 Noviembre 2019, 15:24 pm »

Como querias guardar una letra era "%s" no "%i"


#include <stdio.h>

int find(char *cadena, char letra_a_contar, int size)
{
    int acc = 0;
    for(int i = 0; i < size ; i++) {
        if (cadena == letra_a_contar) {
            acc = acc+1;
        }
    }
    return acc;
}
int main()
{
    char cad[9];
    int size;
    int letra_a_buscar;
    int res = 0;
    printf("Escribe la frase:");
    scanf("%s",&cad);
    printf("Cuantas letras tiene la frase:");
    scanf("%i",&size);
    printf("Escribe la letra que quieres contar:");
    scanf("%s",&letra_a_buscar);
    res = find(cad, letra_a_buscar, size);
    printf("%i", res);
    return 0;
}
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
dividir cadena letra por letra
Scripting
morenochico 3 9,039 Último mensaje 3 Julio 2009, 18:46 pm
por leogtz
[Batch] BUCLE FOR se repite varias veces
Scripting
wareware 3 7,736 Último mensaje 28 Agosto 2011, 22:59 pm
por leogtz
Contar cuantas veces se repite un numero [duda JAVA]
Java
Norlak 3 47,228 Último mensaje 23 Agosto 2012, 18:33 pm
por s00rk
Mostrar la cantidad de veces que una cadena se repite
Programación C/C++
andoporto 1 3,211 Último mensaje 9 Febrero 2015, 08:10 am
por eferion
Contar cuantas veces se repite cada vocal en una frase que ingresa el usuario
Programación C/C++
nomsaro89 2 5,865 Último mensaje 2 Octubre 2019, 13:15 pm
por nomsaro89
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines