Estoy tratando de construir un programa, al cual yo le de una frase y una letra, y me diga cuantas veces aparece esa letra en la frase. El problema esta en que logro dirigirme a cada letra de la frase, pero al compararla, siempre me la toma como si fueran iguales...
#include <stdio.h>
int ContarLetra(char vector[],int largo,char letra);
int main(){
char frase[30] = "AJO Y AGUA";
int k = ContarLetra(frase,10,'O');
printf("%d",k);
}
/* Funcion a la cual se le da la frase a contar, el largo de la frase
y la letra que queremos contar cuantas vecces aparece */
int ContarLetra(char vector[],int largo,char letra){
int contador = 0;
for (int i = 0;i < largo;i++){
printf("%c \n",vector[i]);
if (vector[i] = letra) {
contador ++;
}
}
return contador;
}
en la linea 23 esta el error
el simbolo
=
Sirve para asignar, un if, sólo retornará el valor de la derecha y si este es diferente de 0 se tomará como true
Debes usar
==
Que es el operador de comparación
Otro detalle, en la línea 7 debes pasar el largo +1 debido a que en la línea 19 usas < y no <=... también puedes hacerlo hasta dar con un \0
He cambiado lo que me dijiste, y ha quedado maravilloso, muchas gracias.