C/Visual C - Una respuesta

 
Vista:

Una respuesta

Publicado por Yo (2 intervenciones) el 14/09/2000 00:00:00
Me gustaria saber si existe en C, C++ una función equivalente a Space(n) de
Visual Basic.
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

RE:Una respuesta

Publicado por Endos (143 intervenciones) el 15/09/2000 00:00:00
Si explicas que hace Space()...
De todas formas aunque no exista puedes crearla tu mismo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

SPACE(): Dicese....

Publicado por Javier (54 intervenciones) el 25/09/2000 00:00:00
Hola:
Space() es una función de xBase que requiere un parámetro numérico y retorna una cantidad de espacios en función de este. Ejemplo>
cCadena := Space(30) // almacena 30 espacios en la variable cCadena.
P A R A E N D O S: Sería correcto esto?

char * Space(int Len)
{
char Aux[80] ;
int k ;
for(k=0;k<Len;k++)
{
Aux[k]=´ ´;
}
Aux[k]=´\0´;
return Aux ;
}
// luego en main por ejemplo
main()
{
char V[30] ;
strcpy( V, Space(30));
// es correcto
}
COMENTA TUS IMPRESIONES POR FAVOR!!!
Javier
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SPACE(): Dicese....

Publicado por Endos (143 intervenciones) el 25/09/2000 00:00:00
Tu codigo no esta bien, tiene un error.
Estas pasando un arreglo local como resultado de la operacion.
Esto no funcionara y si lo hace, no tardara en caer tu sistema.
Las variables locales, incluidas los arreglos son destruidas cuando
la funcion termina.

La forma correcta seria

char * Space(int Len)
{
int k ;
char *Aux=malloc(Len+1) ; /* Crealo dinamicamente para poder retornarlo */

for(k=0;k<Len;k++)
{
Aux[k]=´ ´;
}
Aux[k]=´\0´;
return Aux ;
}

De todas formas hay una forma de hacerlo mas corto:

char * Space(int Len)
{
char *Buffer=malloc(Len+1);
*(Buffer+Len)=NULL;

return memset(Buffer,32,Len);
}

Saludos,
Endos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar