Hola, soy nuevo programando y necesito hacer un programa que muestre las veces que una letra se repite en una cadena. Lenguaje C
Gracias :-(
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
cuando ejecuto me aparece "segmentation fault"
#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;
}
tienes errores...
for(int i = 0; 100 ; i++) {
el segundo argumento simplemente pusiste 100.... eso debe ser i<100 (si no, esto será un ciclo infinito)
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
entonces en lugar de NULL que me recomiendas poner?
el programa donde estoy trabajando ( cloud 9 ) me recomendo NULL
Claro la recomendación es null, pero debes apartar luego el espacio... si quieres reservar el espacio inicialmente
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
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?
#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;
}
¿como se puede guardar una letra en una variable?
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;
}