Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/10/2014, 17:09
tyrax
 
Fecha de Ingreso: abril-2012
Mensajes: 12
Antigüedad: 12 años
Puntos: 0
Pregunta Error al comparar dos char en un If

Hola. Me encuentro haciendo un algoritmo que obtiene un string de una variable, crea un arreglo de registros, un registro para cada caracter de la tabla ascii extendida, y compara cada caracter del string con su correspondiente en la tabla ascii, aumentando un contador cada vez que hay una coincidencia.
En palabras mas simples, busca cada caracter en al string y cuenta con que frecuencia se repite, guardandolo en el registro del caracter correspondiente.

Me presenta un mensaje de error en la linea en la que comparo el caracter que extraigo del string con el que tengo almacenado en el registro.

Código:
using namespace std;
struct letraalfabeto {
	public:
		char letra;
		int frecuencia;
};

int main(){
	string texto1;
	letraalfabeto alfabeto[224];
	texto1 = "some text asd 123456";
	
	alfabeto[1].letra = ' ';
	alfabeto[1].frecuencia = 0;
	for (int i = 2; i<224; i++){ //Guarda valores ascii en el arreglo de registros
		alfabeto[i].letra = alfabeto[i-1].letra+1;
		alfabeto[i].frecuencia = 0;
	}
	
	for (int i=1; i<texto1.length(); i++){
		for (int j=0; j>texto1.length(); j++){
			if ((char)texto1.substr(i-1,1) == alfabeto[j].letra){
				alfabeto[i].frecuencia=alfabeto[j].frecuencia+1;
			}
		}
	}
	
	return 0;	
}
Este es el error que me presenta.
Código:
28:33 [Error] invalid cast from type 'std::basic_string<char>' to type 'char'

28:33: error: invalid cast from type 'std::basic_string<char>' to type 'char'
    if ((char)texto1.substr(i-1,1) == alfabeto[j].letra){
Pueden ayudarme a solventar este error?