Estoy haciendo esta funcion, para el uso de Strings en la libreria BennuPlayNet, pero tengo problemas en hacerla.. no puedo , me dice:
Data type not accepted here" , en:
chrVector=chrArray;
Esta es la funcion. De paso pido que si hay algun otro error de programacion respecto al pasaje de arrays como parametro, algun corchete de mas o de menos si me lo pueden decir, desde ya gracias.
function BuildString(char chrArray);
private
int i;
string strFullString;
int tope;
char chrVector[200];
BEGIN
chrVector=chrArray;
tope=sizeof(chrVector)/sizeof(chrVector[0]);
for(i=0;i<=tope;i++)
strFullString=strFullString + chrVector[tope];
end
return strFullString;
END
lo que se hace, y esto se hace incluso en C, es lo siguiente.
function BuildString(char *chrArray, int elems);
y al llamar la funcion
BuildString( array, sizeof(array)/sizeof(array[0]));
o
BuildString( &array[0], sizeof(array)/sizeof(array[0]));
EDIT: Si el array es de tipo char, entonces simplemente es poner sizeof(array)
me afano la idea, es muy buena! xD
entonces no hay forma de pasar un Array por parametro?¿ Pq en mi caso es algo que realmente necesito hacer. Asi si lo puedo pasar:
function string BuildString(char pointer chrArray);
Poniendo pointer , asi se pasa. pero como decis vos como puntero...
como puntero, si, pero necesitas pasar el tamaño tambien.
Estoy un poco mareado. me podrian pàsar un ejemplo de una funcion donde se le pasa un vector, el tamaño.. y en una variable se guarde cuantos elementos tiene ese array? Agradeceria mucho. (en mi caso seria un array de tipo Char)
un array tipo char si termina en '\0' entonces ya es una string... no necesitas hacer una funcion para eso.
El tema es que BennuPlayNet no acepta Strings, por eso hice la funcion esa
como sea, el tamaño (cantidad de elementos) lo obtenes de la formula que te pase, y ese valor lo das por parametro.
Joya, ahi entendi perfectamente =) Muchas gracias Splinter
pero en esa funcion estas retornando una string...
imagino que lo que le pasas por parametro es lo que te retorna bennuplaynet... pero eso que le pasas por parametro lo podes usar tranquilamente en bennugd como string. no necesitas convertirlo, solo lo necesitarias convertir (pero de string a char[]) si lo necesitaras como parametro de bennuplaynet.
no entiendo que estas haciendo, pero me parece que estas haciendo algo que no es necesario.
Quote from: Milton884 on August 25, 2012, 06:34:24 PM
Joya, ahi entendi perfectamente =) Muchas gracias Splinter
me alegra que lo hayas entendido, pero me parece que no es necesario, con usar char[] en todo el codigo, ya es suficiente para usarlo en bennuplaynet y en bennugd como string... ademas, es mas rapido.
sisi me di cuenta que se puede Usar char tranquilamente como si fuese una String, yo pensaba que un array de Char contenia en cada elemento Solo una Letra y que no se podia hacer esto:
arrChar="Este es un texto bla bla bla";
Por eso hice esa funcion. Totalmente inecesaria.
bueno, no te equivocas al decir que cada elemento contiene 1 sola letra, sin embargo el array entero puede ser usado como un string...
esto es valido
char array[10];
string str;
str = "hola mundo";
array = "hola mundo";
str = array;
array = str;