Sunteți pe pagina 1din 2

main

//main.cpp contiene la funcion main


#include"palindromos.h"

int main()
{
setlocale(LC_ALL, "spanish");
string texto;
string* palabrasAlDerecho; //palabrasAlDerecho es un arreglo unidimensinal
string* palabrasAlreves;
int contador;
leerTexto(texto);
contador=contadorDePalabras(texto);
memoria(palabrasAlDerecho, contador);
formarPalabrasAlDercho(palabrasAlDerecho, texto);
memoria(palabrasAlreves, contador);
formarPalabrasAlreves(palabrasAlDerecho, palabrasAlreves, contador;);
system("pause");
}

.h
#pragma once
#include<iostream>
using namespace std;
#include <string>
#include<cassert>

void leerTexto(string &texto);


int contadorDePalabras(string texto);
void memoria(string*& palabras, int contador);
void formarPalabrasAlDercho(string* palabrasAlDerecho, string texto);
void memoria2(string*& palabras, int contador);
void formarPalabrasAlreves(string* palabrasAlDerecho, string* palabrasAlreves, int
contador);

cpp
#include"palindromos.h"

void leerTexto(string &texto)


{
cout << "Escriba un texto..?\n";
getline(cin, texto);//captura- lee el texto
}

int contadorDePalabras(string texto)


{
int i = 0, contadorDePalabras = 0; // i me recorre el texto
int longitud = (int)texto.length();
while (i < longitud) // recorre todo el arreglo
{
while (i < longitud && texto[i] != ' ')
{
i++;//recorre arreglo
}
contadorDePalabras++;
while (i < longitud && texto[i] == ' ')// si encuentra doble espacio,
que siga recorriendo el arreglo
i++;
}
return contadorDePalabras;
}

void memoria(string *&palabras, int contador) //palabras es una referencia a un


puntero string
{
palabras = new string[contador]; //pide memoria para un arreglo de string que
tiene contador elementos
assert(palabras != NULL);
}

void formarPalabrasAlDercho(string* palabrasAlDerecho, string texto)


{
int i = 0, j=0; // i me recorre el texto
int longitud = (int)texto.length();
while (i < longitud) // recorre todo el arreglo texto
{
while (i < longitud && texto[i] != ' ')
{
palabrasAlDerecho[j] += texto[i];
i++;
}
j++;
while(i < longitud && texto[i] == ' ')
i++;
}
for (int i = 0; i < 8; i++)
cout << palabrasAlDerecho[i]<<endl;

void memoria(string*& palabras, int contador) //palabras es una referencia a un


puntero string
{
palabras = new string[contador]; //pide memoria para un arreglo de string que
tiene contador elementos
assert(palabras != NULL);
}

void formarPalabrasAlreves(string* palabrasAlDerecho, string* palabrasAlreves, int


contador)
{
int i=0, j=contador-1;
while (i < contador)
{
palabrasAlreves[j] = palabrasAlDerecho[i];
i++;
j--;
}
}

S-ar putea să vă placă și