Comparar letra una letra en un array, con una letra del abcdario

Iniciado por Naimaderis, 10 Marzo 2017, 03:54 AM

0 Miembros y 1 Visitante están viendo este tema.

Naimaderis

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;

    }

engel lex

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
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.

Naimaderis

He cambiado lo que me dijiste, y ha quedado maravilloso, muchas gracias.