marmotau
Bovino maduro
- Desde
- 6 Oct 2008
- Mensajes
- 198
- Tema Autor
- #1
Que tal bakunos estoy aqui de nuevo, pues veran no me resulta este programa en la que tengo lo siguiente(ignoren las demas librerias son parte de otras partes del programa)
#include <cstdlib>
#include <iostream>
#include <cstring>
#include <cmath>
#include <sstream>
#include <cctype>
using namespace std;
class Logvec{
public:
void Frase(string fras){
int i,contp=0,lim=fras.size();//se supone que me tendria que obtener el espacio total de la cadena aun con espacios...
char aux[lim];
cout<<endl;
for(i=0;i<lim;i++){
aux=fras;
if(fras==' '){contp+=1;//NO SE PORQUE NO ENTRA A ESTE IF!!
i++;}
cout<<aux;//unicamente me imprime la 1era palabra la demas arroja basura
}
cout<<"\nContador de palabras:"<<contp;
system("pause>nul");
}
int Invertida(char *frasin,int tam){
int i;
char fras2[tam];
for(i=0;i<tam;i++){
for(int j=tam;j>0;j--){
fras2=frasin[j];//se supone que son vectores char y no se asigna nada a fras2
}
}
return *fras2;
}
int Long(string longi){
int i=0,e=1,contp=0;
do{
if(isalpha(longi)){
contp++;}
if(longi[i+2]==' '&&longi[i+1]==' '){e-=2;}//se rompera el do cuando e sea igual ya que e va a delantado pero se rompe el programa
i++;
e++;
}
while(i!=e);
return contp;//uincamente cuenta hasta la 1era palabra
}
};
int main(int argc, char *argv[]){
Logvec vec1,vec2,vec3,vec4,vec5,vec6,vec7;
string num,mor,fras,longi;
char frasin[100];
int tam=0,i;
c
cout<<"\nIngresa cadena para obtener el numero de palabras:"<<endl;
cin>>fras;;
vec3.Frase(fras);
cout<<"\nIngresa una frase para invertirla:"<<endl;
cin>>frasin;
for(i=0;i<100;i++){
if(isalpha(frasin)){
tam++; }
}
cout<<""<<vec4.Invertida(frasin,tam);
system("cls");
cout<<"Ingresa una cadena para su longitud:"<<endl;
cin>>longi;
cout<<""<<vec5.Long(longi);
system("pause>nul");
return EXIT_SUCCESS;
}
la 1era funcion es Implementar un método que recibe una cadena que puede ser una frase y retorna el total de palabras que la integran.
la 2nda . Implementa un método que recibe como parámetro un vector de char y su tamaño y retorne el vector de char invertida.
la 3era. Implementa un método que recibe como parámetro una cadena (string) y retorne la longitud de la cadena, no tienes permitido usar métodos que obtenga longitud.
Ojala me puedan ayudar el nucleo del problema es el string ya sea pasarlo a vec char y de ahi poderlo hace con el vector
#include <cstdlib>
#include <iostream>
#include <cstring>
#include <cmath>
#include <sstream>
#include <cctype>
using namespace std;
class Logvec{
public:
void Frase(string fras){
int i,contp=0,lim=fras.size();//se supone que me tendria que obtener el espacio total de la cadena aun con espacios...
char aux[lim];
cout<<endl;
for(i=0;i<lim;i++){
aux=fras;
if(fras==' '){contp+=1;//NO SE PORQUE NO ENTRA A ESTE IF!!
i++;}
cout<<aux;//unicamente me imprime la 1era palabra la demas arroja basura
}
cout<<"\nContador de palabras:"<<contp;
system("pause>nul");
}
int Invertida(char *frasin,int tam){
int i;
char fras2[tam];
for(i=0;i<tam;i++){
for(int j=tam;j>0;j--){
fras2=frasin[j];//se supone que son vectores char y no se asigna nada a fras2
}
}
return *fras2;
}
int Long(string longi){
int i=0,e=1,contp=0;
do{
if(isalpha(longi)){
contp++;}
if(longi[i+2]==' '&&longi[i+1]==' '){e-=2;}//se rompera el do cuando e sea igual ya que e va a delantado pero se rompe el programa
i++;
e++;
}
while(i!=e);
return contp;//uincamente cuenta hasta la 1era palabra
}
};
int main(int argc, char *argv[]){
Logvec vec1,vec2,vec3,vec4,vec5,vec6,vec7;
string num,mor,fras,longi;
char frasin[100];
int tam=0,i;
c
cout<<"\nIngresa cadena para obtener el numero de palabras:"<<endl;
cin>>fras;;
vec3.Frase(fras);
cout<<"\nIngresa una frase para invertirla:"<<endl;
cin>>frasin;
for(i=0;i<100;i++){
if(isalpha(frasin)){
tam++; }
}
cout<<""<<vec4.Invertida(frasin,tam);
system("cls");
cout<<"Ingresa una cadena para su longitud:"<<endl;
cin>>longi;
cout<<""<<vec5.Long(longi);
system("pause>nul");
return EXIT_SUCCESS;
}
la 1era funcion es Implementar un método que recibe una cadena que puede ser una frase y retorna el total de palabras que la integran.
la 2nda . Implementa un método que recibe como parámetro un vector de char y su tamaño y retorne el vector de char invertida.
la 3era. Implementa un método que recibe como parámetro una cadena (string) y retorne la longitud de la cadena, no tienes permitido usar métodos que obtenga longitud.
Ojala me puedan ayudar el nucleo del problema es el string ya sea pasarlo a vec char y de ahi poderlo hace con el vector