Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Naimaderis en 10 Marzo 2017, 03:54 am



Título: Comparar letra una letra en un array, con una letra del abcdario
Publicado por: Naimaderis en 10 Marzo 2017, 03:54 am
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...

Código
  1.    #include <stdio.h>
  2.    int ContarLetra(char vector[],int largo,char letra);
  3.  
  4.    int main(){
  5.  
  6.    char frase[30] = "AJO Y AGUA";
  7.    int k = ContarLetra(frase,10,'O');
  8.    printf("%d",k);
  9.  
  10.    }
  11.  
  12.    /* Funcion a la cual se le da la frase a contar, el largo de la frase
  13.     y la letra que queremos contar cuantas vecces aparece */
  14.  
  15.    int ContarLetra(char vector[],int largo,char letra){
  16.  
  17.    int contador = 0;
  18.  
  19.    for (int i = 0;i < largo;i++){
  20.  
  21.    printf("%c \n",vector[i]);
  22.  
  23.    if (vector[i] = letra) {
  24.    contador ++;
  25.    }
  26.  
  27.    }
  28.  
  29.    return contador;
  30.  
  31.    }
  32.  


Título: Re: Comparar letra una letra en un array, con una letra del abcdario
Publicado por: engel lex en 10 Marzo 2017, 04:02 am
en la linea 23 esta el error

el simbolo

Código:
=

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

Código:
==

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


Título: Re: Comparar letra una letra en un array, con una letra del abcdario
Publicado por: Naimaderis en 10 Marzo 2017, 04:24 am
He cambiado lo que me dijiste, y ha quedado maravilloso, muchas gracias.