C/Visual C - ayuda con vector de strings

 
Vista:

ayuda con vector de strings

Publicado por Juan Carlos Jocop (1 intervención) el 15/06/2010 08:14:57
Estimados(as):

He copiado integramente el contenido del programa que describo a continuación, pero me da un error en el uso del vector V3. Estoy usando Borland C++, version 5.01. El link o la fuente de donde lo obtuve es el siguiente:

http://www.recursosdelweb.com/como-mezclar-y-ordenar-dos-2-vectores-de-cadenas-en-c-cpp/

Aprecio y agradezco desde ya su ayuda. Que esten bien.
==============================================================
#include <iostream.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
void leerv(char v[][100], int n)
{
int a;
for (a=0;a<=n;a++)
cin>>v[a];
}

void mezclar(char v1[][100], int n1, char v2[][100], int n2, char* v3[][100], int n3)
{
int a=0,c=0,x=0,c1=0,c2=0;
char aux[100];
for (c=0; c<=n3; c++)
{
if (c<=n1) //si todavia no se akaba el primer vector
{
v3[c] = v1[c1]; // **** AQUI DA EL ERROR ***** ///
++c1;
}
else
{
v3[c]=v2[c2]; //si ya se akabo el primer vector entonces usamos el segundo
++c2;
}

if (c>0) //si NO es la primera vuelta
{
for (a=c; a>0; a--)
{
x=strcmp(v3[a],v3[a-1]);
if (x<0) //si el nuevo elemento es menor ke el anterior entonces intercambiamos
{
aux = v3[a-1];
v3[a-1] = v3[a];
v3[a] = aux;
}
}
}
}
}

void imprime(char v[][100], int n3)
{
int a;
cout<<endl<<endl<<"----Resultado-----";
for (a=0;a<=n3;a++)
cout<<endl<<v[a];
cout<<endl<<endl;
}

// ****************************************************************************
// Programa principal
// ****************************************************************************
int main()
{
char v1[20][100], v2[20][100], v3[40][100],cad;
int a,n1=21,n2=21,n3=0;
while ((n1>20) || (n1<1))
{ cout<<"Introduce el total de palabras de la columna 1 [1-20]:"; cin>>n1; }
while ((n2>20) || (n2<1))
{ cout<<"Introduce el total de palabras de la columna 2 [1-20]:"; cin>>n2; }
n3=n1+n2-1;
n1--;
n2--;
cout<<endl<<"----Columna 1-----"<<endl;
leerv(v1,n1);
cout<<endl<<endl<<"----Columna 2-----"<<endl;
leerv(v2,n2);
mezclar(v1,n1,v2,n2,v3,n3);
imprime(v3,n3);
system("PAUSE");
return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder