Lo que quiero es pedir una cadena de char y después dividirlo en char para poder meterlo a un switch
Tengo esta función que me divide la cadena cada vez que hay un espacio pero me lo deja como cadena de char aunque sea solo un elemento.
Código C++:
Ver original
Entonces si el resultado lo meto en una cola y después lo voy sacando como fueron entrando para ejecutar un switch
Código C++:
Ver original
switch(f.desencolar()) { case 'a': break; case 'j': break; }
me da este error
switch quantity not an integer
y entiendo que es porque esta recibiendo cadena de caracteres y no solo un char.
Y no se si exista otra forma de hacer esto
Por lo que entonces la otra forma que se me ocurre es:
Código C++:
Ver original
char operacion[30]; cout<<"Ingresa la frase"<<endl; cin.getline(operacion,30); for(int i=0; i<30; i++) { char c=operacion[i]; switch(c) { case 'h':cout<<"Imprime la h"<<endl; break; case 'o':cout<<"Imprime la o"<<endl; break; case 'l':cout<<"Imprime la l"<<endl; break; case 'a':cout<<"Imprime la a"<<endl; break; case '+':cout<<"Imprime la +"<<endl; break; case '-':cout<<"Imprime la -"<<endl; break; case '*':cout<<"Imprime la *"<<endl; break; case '/':cout<<"Imprime la /"<<endl; break; case '(':cout<<"Imprime la ("<<endl; break; case ')':cout<<"Imprime la )"<<endl; break; } }
Y este si funciona pero el problema es que en la parte donde esta el for
Código C++:
no quiero ponerle tamaño definido sino que sea del tamaño exacto que tiene la cadena, porque si por ejemplo yo meto solo "hola" en vez de recorrer 4 espacios recorre los 30 y en ocasiones imprime datos que no existen,Ver original
for(int i=0; i<30; i++)
entonces aqui mi duda es
como contar los elementos dentro de un arreglo char??
Bueno de antemano muchas gracias y pues ojala me pudieran ayudar con cualquier de los dos problemas.