Tengo este codigo creado por mi mismo pero me da un error logico porque al ejecutarlo me dice que la cadena "UASD" solo tiene una vocal y es mentira.
#include <iostream>
#include <string>
class cCadena{
private:
std::string CadCar;
public:
void setCadCar(std::string pCadCar){CadCar=pCadCar;}
std::string getCadCar(){
return CadCar;
}
void ImpHorizontal(){
std::cout<<CadCar<<std::endl;
}
void ImpVertical(){
for(int i=0;i<CadCar.length();i++)
std::cout<<CadCar[i]<<"\n";
}
bool esVocal(){
for(int i=0; CadCar[i]!='\0'; i++){
if (CadCar[i] =='A' || CadCar[i] =='E' || CadCar[i] =='I' || CadCar[i] =='O' || CadCar[i] =='U'
|| CadCar[i] =='a' || CadCar[i] =='e' || CadCar[i] =='i' || CadCar[i] =='o' || CadCar[i] =='u'){
return true;
}
else
return false;
}
}
void ImpCantVocales(){
int CanVoc=0;
if (esVocal())
{
CanVoc++;
}
std::cout<<"\nLa cadena tiene "<< CanVoc <<" vocales"<< std::endl;
}
};
main(){
cCadena oCadena;
oCadena.setCadCar("UASD");
oCadena.ImpHorizontal();
//oCadena.ImpVertical();
oCadena.ImpCantVocales();
// oCadena.ImpCantConsonantes();
system("pause");
}
me imprime que solo existe una vocal ayuda por favor!!!
y alguien es tan amable de explicarme este codigo?
void displayMaxCharacterWords(std::string& cadena )
{
std::string palabra;
string::iterator it = cadena.begin( );
for( string::iterator it2 = it; it2 != cadena.end( ); ++it2 )
{
if ( *it2 == ' ' || *it2 == ',' || *it2 == '.' )
{
size_t length = std::distance( it, it2 );
if ( length > palabra.size( ) )
palabra = std::string(it, it2 );
it = it2+1;
}
}
std::cout << "\n\nLa palabra mas larga de la cadena es: "<< palabra << std::endl;
}