elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Temas
Páginas: 1 [2]
11  Programación / Programación C/C++ / error logico ayuda con este programa en: 23 Febrero 2015, 04:38 am
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.
Código
  1. #include <iostream>
  2. #include <string>
  3.  
  4. class cCadena{
  5.      private:
  6.              std::string CadCar;
  7.      public:
  8.             void setCadCar(std::string pCadCar){CadCar=pCadCar;}
  9.             std::string getCadCar(){
  10.                  return CadCar;
  11.                  }
  12.  
  13.             void ImpHorizontal(){
  14.                  std::cout<<CadCar<<std::endl;
  15.                  }
  16.  
  17.             void ImpVertical(){
  18.                  for(int i=0;i<CadCar.length();i++)
  19.                      std::cout<<CadCar[i]<<"\n";      
  20.                  }
  21.  
  22.             bool esVocal(){
  23.                  for(int i=0; CadCar[i]!='\0'; i++){
  24.                  if (CadCar[i] =='A' || CadCar[i] =='E' || CadCar[i] =='I' || CadCar[i] =='O' || CadCar[i] =='U'
  25.                      || CadCar[i] =='a' || CadCar[i] =='e' || CadCar[i] =='i' || CadCar[i] =='o' || CadCar[i] =='u'){
  26.                       return true;
  27.                       }
  28.                       else
  29.                        return false;
  30.                     }
  31.                  }
  32.  
  33.             void ImpCantVocales(){
  34.                  int CanVoc=0;
  35.                  if (esVocal())
  36.                     {
  37.                     CanVoc++;
  38.                        }
  39.               std::cout<<"\nLa cadena tiene "<< CanVoc <<" vocales"<< std::endl;
  40.                  }
  41.  
  42.      };
  43.  
  44. main(){
  45.       cCadena oCadena;
  46.       oCadena.setCadCar("UASD");
  47.       oCadena.ImpHorizontal();
  48.       //oCadena.ImpVertical();
  49.       oCadena.ImpCantVocales();
  50.      // oCadena.ImpCantConsonantes();
  51.  
  52.       system("pause");
  53.       }
  54.  
  55.  

me imprime que solo existe una vocal ayuda por favor!!!

y alguien es tan amable de explicarme este codigo?
Código
  1. void displayMaxCharacterWords(std::string& cadena )
  2. {
  3.  std::string palabra;
  4.  string::iterator it = cadena.begin( );
  5.  
  6.  for( string::iterator it2 = it; it2 != cadena.end( ); ++it2 )
  7.  {
  8.    if ( *it2 == ' '  || *it2 == ',' || *it2 == '.' )
  9.    {
  10.      size_t length = std::distance( it, it2 );
  11.      if ( length > palabra.size( ) )
  12.        palabra = std::string(it, it2 );
  13.      it = it2+1;
  14.    }
  15.  }
  16.  
  17.  std::cout << "\n\nLa palabra mas larga de la cadena es: "<< palabra << std::endl;
  18. }
  19.  
12  Programación / Programación C/C++ / Necesito ayuda con este codigo en: 20 Febrero 2015, 04:11 am
 
Código
  1. bool esVocal(char c){
  2.                  bool tipo=false;
  3.                  for(int i=0; CadCar[i]!='\0'; i++){
  4.                  if (CadCar[i] =='A' || CadCar[i] =='E' || CadCar[i] =='I' || CadCar[i] =='O' || CadCar[i] =='U'){
  5.                       tipo = true;
  6.                       }
  7.                     }
  8.                     return tipo;
  9.                  }
  10.  
  11.             void ImpCantVocales(){
  12.                  int cont=0;
  13.                  for(int i=0;CadCar[i]!='\0';i++){
  14.                  if (esVocal(CadCar[i]))
  15.                     {
  16.                     cont++;
  17.                        }
  18.               }
  19.               std::cout<<"\nLa cadena tiene "<< cont <<" vocales"<< std::endl;
  20.                  }
  21.  
  22. /---------------------------------------------------------------------------------------------/
  23.  
cuando le ingreso un string me dice que todo lo que le pongo es vocal jejejejje Ayuda porfa

Mod: Mensaje modificado, al publicar código usa etiquetas GeSHi
13  Programación / Programación C/C++ / Imprimir la palabra mas larga de un string C++ en: 15 Febrero 2015, 23:08 pm
Gente necesito una ayudita... Quiero hacer una funcion que reciba un string y que dentro del string busque la palabra mas larga y la imprima. Y quisiera saber como voltear un string alreves pero que se quede en la misma posicion con los metodos sort() y reverse().

tengo esto asi las pude voltear:

#include <iostream>
#include <string>
using namespace std;
 
void invertStringWords(string);
void countVocals(string);
void countConsonants(string);
void countSpecialCharacters(string);
void displayMaxCharacterWords(string);
void countWords(string);
 
int main() {
    string words;
    std::cout<<"Introduzca alguna frase: ";
    std::getline(std::cin,words);
   
    cout << endl << "Sentencia original: \t" << words << endl;
    reverse(words.begin(),words.end());
    invertStringWords(words);
   
   
    system("pause");
    return 0;
}

//Funcion que invierte el orden de las palabras en una cadena
void invertStringWords(string words) {
          //Arreglo con la longitud de los caracteres en la sentencia
          int arraylength = words.length();
 
          // índice para el caracter que está siendo leído
          int a=0;
 
          // String para almacenar la última palabra formada del arreglo
          string invert="";
 
          // Arreglo de caracteres con la cadena final de palabras invertidas
           char invertedWords[arraylength];
 
           // Ciclo que recorre la cadena original desde el final
           for(int i=arraylength-1; i >= -1; i--){
             // Si encontramos un espacio ya hemos terminado una palabra
             // invertir la palabra y agregarla al principio del arreglo invertido
             if(i==-1 || words == ' ') {
                         // Agregar la última palabra encontrada invertida en la sentencia
                         // al principio del arreglo de cadena invertida
                         for(int b=invert.length()-1; b >=0 ; b--) {
                                 invertedWords[a] = invert;
                                 a++;
                         }
                         // Agregar un espacio para delimitar palabra e incrementar el contador
                         // 'a' solo si no se ha llegado al final del arreglo.
                         if (i>-1)
                            invertedWords[a++] = ' ';
                         invert="";
             }
             else
             {
              // Tenemos un caracter, agregarlo a la cadena temporal
                         invert +=words;
             }
     }
             cout << endl << "Sentencia invertida: \t" << invertedWords << endl;
}
14  Programación / Programación C/C++ / Como puedo invertir un string en C++ en: 16 Noviembre 2014, 20:43 pm
Necesito una idea clara o un ejemplo de como invertir un string. Si usando arreglos o el tipo string
15  Programación / Programación C/C++ / Una funcion que devuelva un entero + un string en c++ en: 12 Septiembre 2014, 19:42 pm
Alguna idea de como hacer una función que devuelva un entero mas una cadena. Que me devuelva la edad y una frase que diga usted es mayor de edad o menor
16  Programación / Programación C/C++ / Necesito ayuda con este codigo por favor en: 12 Septiembre 2014, 06:01 am
Tengo este código pero el profesor me pide que al introducir la letra del sexo le mande el string correspondiente al get con el set y no tengo ni idea de como hacerlo. Eje si pongo m o M que le mande masculino.


//Elaborado por: Jose Miguel Mella Garcia
#include <iostream>
#include <string.h>

using std::string;

class Persona{
      private:
              string NomPer,CedPer,CelPer,TipSan,ColOjo,ColPiel,DirPer,MatPer;
              float EstPer, PesPer;
              int EdaPer;
              char EstCiv,SexPer;

      public:
             //Constructores
             Persona(){}
             //Metodos sets
             void setNomPer(string pNomPer){NomPer=pNomPer;}
             void setCedPer(string pCedPer){CedPer=pCedPer;}
             void setCelPer(string pCelPer){CelPer=pCelPer;}
             void setTipSan(string pTipSan){TipSan=pTipSan;}
             void setColOjo(string pColOjo){ColOjo=pColOjo;}
             void setColPiel(string pColPiel){ColPiel=pColPiel;}
             void setDirPer(string pDirPer){DirPer=pDirPer;}
             void setMatPer(string pMatPer){MatPer=pMatPer;}
             void setEstPer(float pEstPer){EstPer=pEstPer;}
             void setPesPer(float pPesPer){PesPer=pPesPer;}
             void setEdaPer(int pEdaPer){EdaPer=pEdaPer;}
             void setEstCiv(char pEstCiv){EstCiv=pEstCiv;}
             void setSexPer(char pSexPer){SexPer=pSexPer;}
             //Metodos gets
             int getEdaPer(){return EdaPer;}
             float getPesPer(){return PesPer;}
             float getEstPer(){return EstPer;}
             char getSexPer(){return SexPer;}
             char getEstCiv(){return EstCiv;}
             string getNomPer(){return NomPer;}
             string getCedPer(){return CedPer;}
             string getCelPer(){return CelPer;}
             string getTipSan(){return TipSan;}
             string getColOjo(){return ColOjo;}
             string getColPiel(){return ColPiel;}
             string getDirPer(){return DirPer;}
             string getMatPer(){return MatPer;}
             //imprimir datos del vehiculo
             void ImpDetPer(){
                  limpiar();
                  ponerRaya();
                  std::cout<<"\t\t\t      Descripci\242n de la Persona"<<std::endl<<std::endl;
                  ponerRaya();
                  std::cout<<"\n\n\tNombre         : "<<getNomPer()<<std::endl;
                  std::cout<<"\tCedula        : "<<getCedPer()<<std::endl;
                  std::cout<<"\tSexo         : "<<getSexPer()<<std::endl;
                  std::cout<<"\tEdad  : "<<getEdaPer()<<std::endl;
                  std::cout<<"\tMatr\241cula        : "<<getMatPer()<<std::endl;
                  std::cout<<"\tCelular   : "<<getCelPer()<<std::endl;
                  std::cout<<"\tEstado Civil : "<<getEstCiv()<<std::endl;
                  std::cout<<"\tDirecci\242n : "<<getDirPer()<<std::endl;
                  std::cout<<"\tPeso      : "<<getPesPer()<<std::endl;
                  std::cout<<"\tEstatura      : "<<getEstPer()<<std::endl;
                  std::cout<<"\tTipo Sangre  : "<<getTipSan()<<std::endl;
                  std::cout<<"\tColor Ojos  : "<<getColOjo()<<std::endl;
                  std::cout<<"\tColor Piel  : "<<getColPiel()<<std::endl<<std::endl;
                  }
             //Pausa     
             void Pause(){
                std::cin.get();std::cin.get();
             }
             //limpiar pantalla
             void limpiar(){system("cls");}
             //poner raya horizontal
             void ponerRaya(){
                  int i;
                  for(i=0; i<=79; i++)
                   std::cout<<"\315";
                  }
      };
     
main(){
       string nombre,cedula,celular,sangre,ojos,piel,direccion,matricula;
       float estatura,peso;
       int edad;
       char sexo, estado;
       Persona ObjPer;
       system("color 9F");
      //variables para el menu
       int OpcMen, sigue = 1;
      do {
      ObjPer.limpiar();
      ObjPer.ponerRaya();
      std::cout<<"\n\t\t\t    Menu de la clase Persona"<<std::endl<<std::endl;
      ObjPer.ponerRaya();
        std::cout<<"\n\t1.  Nombre"<<std::endl;
      std::cout<<"\t2.  Cedula"<<std::endl;
      std::cout<<"\t3.  Sexo"<<std::endl;
      std::cout<<"\t4.  Edad"<<std::endl;
      std::cout<<"\t5.  Matr\241cula"<<std::endl;
       std::cout<<"\t6.  Celular"<<std::endl;
      std::cout<<"\t7.  Estado Civil"<<std::endl;
      std::cout<<"\t8.  Direcci\242n"<<std::endl;
      std::cout<<"\t9.  Peso"<<std::endl;
      std::cout<<"\t10. Estatura"<<std::endl;
      std::cout<<"\t11. Tipo Sangre"<<std::endl;
      std::cout<<"\t12. Color Ojos"<<std::endl;
      std::cout<<"\t13. Color Piel"<<std::endl;
      std::cout<<"\t14. Ver la informaci\242n digitada de la persona"<<std::endl;
      std::cout<<"\t0. Pulse el cero para Salir"<<std::endl<<std::endl;
        std::cout<<"\t   \nIngrese su opci\242n: ";
      while(!(std::cin>>OpcMen))
           {
          std::cin.clear();
          std::string error;
          std::cin>>error;
            std::cout<<"\n\tLA OPCI\340N INGRESADA NO EXISTE"<<std::endl;
          std::cout<<"\n\tIngrese su opci\242n nuevamente: ";
           }
      switch(OpcMen)   {
         case 1:
                std::cout<<"\nDigite el nombre: ";
            std::cin>>nombre;
            ObjPer.setNomPer(nombre);
                break;
         case 2:
            std::cout<<"\nDigite la cedula: ";
            std::cin>>cedula;
            ObjPer.setCedPer(cedula);
            break;
         case 3:
            std::cout<<"\nDigite el Sexo (M o F): ";
            std::cin>>sexo;
            ObjPer.setSexPer(sexo);
            break;
         case 4:
            std::cout<<"\nDigite la edad: ";
            std::cin>>edad;
            ObjPer.setEdaPer(edad);
            break;
         case 5:
            std::cout<<"\nDigite la matr\242cula: ";
            std::cin>>matricula;
            ObjPer.setMatPer(matricula);
            break;
         case 6:
            std::cout<<"\nDigite el # de celular: ";
            std::cin>>celular;
            ObjPer.setCelPer(celular);
            break;
         case 7:
            std::cout<<"\nDigite el estado civil (S/V/C/D): ";
            std::cin>>estado;
            ObjPer.setEstCiv(estado);
            break;
         case 8:
            std::cout<<"\nDigite la direccion: ";
            std::cin>>direccion;
            ObjPer.setDirPer(direccion);
            break;
         case 9:
            std::cout<<"\nDigite el peso corporal: ";
            std::cin>>peso;
            ObjPer.setPesPer(peso);
            break;
         case 10:
                 std::cout<<"\nDigite la estatura: ";
             std::cin>>estatura;
             ObjPer.setEstPer(estatura);
             break;
            case 11:
                 std::cout<<"\nDigite el tipo de sangre: ";
             std::cin>>sangre;
             ObjPer.setTipSan(sangre);
             break;
          case 12:
                 std::cout<<"\nDigite el color de ojos: ";
             std::cin>>ojos;
             ObjPer.setColOjo(ojos);
             break;
          case 13:
                 std::cout<<"\nDigite el color de piel: ";
             std::cin>>piel;
             ObjPer.setColPiel(piel);
             break;
            case 14:
                 ObjPer.ImpDetPer();
                 ObjPer.Pause();
                 break;
         case 0:
             sigue = 0;
             break;
         default:
            std::cout<<"\t\tLA OPCI\340N INGRESADA NO EXISTE"<<std::endl;
            ObjPer.limpiar();
      }
   } while(sigue);
}
Páginas: 1 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines