Alguien me puede ayudar con este codigo En lenguaje C++ (estoy usando DevC++ esto es lo que tengo (con la opcion 2 y 3 se me cuelga, no sé el por que?)
#include<iostream> #include<string.h> using namespace std;
void palabras(char cadena[], int lar) { int pal,i; pal = 1; for(i=0;i<=lar;i++) { if(cadena == ' ') { pal++; } } cout<<"Cantidad de palabras : "<<pal<<endl; system("pause"); } void invertirfrase(char cadena[], int lar ) { int i; for (i=lar; i >= 0;i--) { cout<< cadena; } cout<<endl; }
int main () { char cadena[30]; int lar, i, pal, op; cout <<"ingrese frase:"<<endl; cin.getline(cadena,30); //lee cadena de forma correcta cout<<"[ "<<cadena<<" ]"<< " se ha guardado en memoria..."<<endl; system("pause");
do{ system("cls"); cout<<" MENU"<<endl; cout<<" 1 Cual es la Frase? "<<endl; cout<<" 2 Determinar cuantas palabras tiene la frase : "<<endl; cout<<" 3 Invertir la frase : "<<endl; cout<<" 4 Invertir el orden de las palabras de la frase : "<<endl; cout<<" 5 Leer si se encuentra una palaba en la frase : "<<endl; cout<<" 6 Es PALINDROMICA? :"<<endl; cout<<" 7 Determinar frecuencia de las letras : "<<endl; cout<<" 9 SALIR "<<endl; cout<<endl<<endl; cout<<"ingrese opcion:"; cin>>op;
if(op==1) { cout<<"es ""'"<<cadena<<"'"" : "; } if(op==2)//contar espacios y sumar 1 en el string { palabras(cadena, lar); } if(op==3) { invertirfrase(cadena,lar); } if(op==4) { cout<<"estamos en opcion 4"<<endl; } if(op==5) { cout<<"estamos en opcion 5"<<endl; } if(op==6) { cout<<"estamos en opcion 6"<<endl; } if(op==7) { cout<<"estamos en opcion 7"<<endl; } system("pause"); }while(op !=9); }
con los minimos conocimientos que tengo no soy capaz de realizarlo, y me veo obligado a pedir ayuda. intente tambien poner en la opcion 1 para ingresar la frase/palabra que es la idea, y tampoco me resulto, llevo casi todo el dia tratando de hacer esto.