Está en la página 1de 4

LABO 3(VECTOR DE CADENA)

/*Se almacena en un vector de cadenas un grupo de cadenas,en base a ello se pide

generar un segundo vector de cadena de tal manera que copie en este ultimo los

elementos del primer vector siempre que usted responda con "s" o "S" cuando le pregunte

"desea copiar (S/n):".Finalmente mostrar el vector generado o en su defecto escribir un

mensaje de "vector no generado"

*/

#include<iostream>

#include<string.h>

#include<stdio.h>

const int N=100,M=80;

using namespace std;

//Definicion de las funciones

void DameDatos(char c [N][M],int &n)

{int i;

cout<<"Numero de elementos del vector"<<endl;

cin>>n;

for(i=0;i<n;i++)

{cout<<"elemento #"<<i<<endl; fflush(stdin);

cin.getline(c[i],M);

void Copiar(char c[][M], char v[][M],int n,int &m)

{int i=0; char op;

for(m=0;i<n;i++)

{ cout<<c[i]<<"Desea copiar (s/n) ?:";

cin>>op;

if(op=='s'|| op=='S')

{strcpy(v[m],c[i]);
m++;

void Mostrar(char v[][M],int m)

{int i;

if(m==0)

cout<<"vector no generado..."<<endl;

else

for (i=0;i<m;i++)

cout<<"B["<<i<<"]="<<v[i]<<endl;

int main()

{char c [N][M],v[N][M]; int n,m;

DameDatos(c,n);

Copiar(c,v,n,m);

Mostrar(v,m);

/*Se desea almacenar en un vector los correos de n estudiantes

cuya estructura es la siguiente:

xxxxxxxxx.yyyyyyy@dominio

donde:

xxxxxx: indica el apellido

yyyyyy: indica el nombre

dominio: puede ser:

unmsm.edu.pe,gmail.com,outlook.com,speedy.com.pe

Se pide copiar en el apellido,nombre y dominio en 3 vectores

independientes.

Luego en base a ello realizar lo siguiente:


a) Mostrar el contenido de los vectores

b) La cantidad de estudiantes existentes por cada dominio (canti de alumnos,dominio,vector)

c)Mostrar lo calculado en el punto b).

*/

#include<iostream>

#include<string.h>

#include<stdio.h>

const int N=100 ,M=40;

//Definiendo las funciones

using namespace std;

void PedirDatos(char d [N][M],int& n) //pOR REFERNCIA LO PONGO PORQUE SINO LOS DATOS
QUE LEE SE PIERDE

{int i;

cout<<"Cuantos alumnos existen ?: "<<endl;

cin>>n;

for(i=0;i<n;i++)

{cout<<"Correo ["<<i<<"]=";fflush(stdin); //fflush cuando hay varias cadenas

gets(d[i]);

void Separar(char d [N][M],int n,char a[][M],char no[][M],char c[][M])//donde


no=nombre,a=apellido,c=correo

{int i,j,z,k;

for(i=0;i<n;i++)//buble externo

//separando apellido

for(j=0;d[i][j]!='.';j++) //bucle interno

a[i][j]=d[i][j];

a[i][j]='\0';

//separando nombre
j++;

for(k=0;d[i][j]!='@';j++,k++)

no[i][k]=d[i][j];

no[i][k]= '\0';

//Separando dominio

j++;

for(z=0;d[i][j]!='\0';j++,z++)

c[i][z]=d[i][j];

c[i][z]= '\0';

void Listado(int n,char a[][M],char no[][M],char c[][M])

{int i=0;cout<<"\nListade vectores separados"<<endl;

for(;i<n;i++)

cout<<a[i]<<"\t"<<no[i]<<"\t"<<c[i]<<endl;

//Funcion principal

int main()

char correo [N][M],ap[N][M],nom[N][M],corr[N][M]; int na;

PedirDatos(correo,na);//entrada de datos

//luego tienes que desagregar

Separar(correo,na,ap,nom,corr);

Listado(na,ap,nom,corr);