Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/11/2012, 19:36
lecourtois10
 
Fecha de Ingreso: noviembre-2012
Mensajes: 3
Antigüedad: 11 años, 5 meses
Puntos: 0
Exclamación Problema con strings y con vectores char!

Que tal soy nuevo en esto queria ver si me pueden ayudar, 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[i]=fras[i];
if(fras[i]==' '){contp+=1;//NO SE PORQUE NO ENTRA A ESTE IF!!
i++;}
cout<<aux[i];//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[i]=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[i])){
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[i])){
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