Buenas noches, primero quisiera disculparme porque sé que ya terminamos este tema, pero quería saber si alguien podría ayudarme. Tengo esta implementación de la función Ocurrencias y me da Segmentation fault luego de ingresar la frase; no logro encontrar el problema, quizás sea algo muy obvio pero no me doy cuenta. Alguien sabe qué puede ser? Desde ya muchas gracias a todos.
#include <stdio.h>
#include <ctype.h>
struct atope{
char frase[100];
int tope; //tope es la cantidad de lugares, no el ultimo indice
};
void cargar(atope arr){
char letra;
scanf("%c",&letra);
int i=0;
while (letra!='.'){
arr.frase[i]=letra;
scanf("%c",&letra);
i++;
}
arr.tope=i;
}
bool iguales(char signo,char letra,char LETRA){
return (signo==letra||signo==LETRA);
}
int Ocurrencias(char frase[100],int n,char l){
int res=0;
for (int i=0;i<n;i++){
if (iguales(frase[i],tolower(l),toupper(l))){
res++;
}
}
return res;
}
main(){
printf("Ingrese una frase, fin con punto: ");
atope arr;
cargar(arr);
char l;
printf("Ingrese una letra: ");
scanf("%c",&l);
printf("La letra aparece %d veces\n",Ocurrencias(arr.frase,arr.tope,l));
return 0;
}