Re: como convertir un arreglo de caracteres a cadena

06/01/2006 - 19:52 por krlosr | Informe spam
Pedro ese es mi problema con el arreglo, supongamos que tengo 3 espacios en el arreglo ocupados de una longitud de 10 pues los demas quedan vacios y nose como comparar ese arreglo de caracteres con una cadena, he echo todo lo que me han dicho y no he encontrado una manera pero eso de las expresiones regulares es lo que voy a intentar haber si puedo solucionarl

ejemplo mi problema
static void main(

char[] arreglo=new char[10]
arreglo[0]='c'
arreglo[1]='a'
arreglo[2]='r'
//los demas espacios del arreglo quedan vacio
//y al tratar de comparar no se pued
string[] cadenas=new string={"car","jose"}
cadena2=new string(arreglo).Trim
//l parecer esto no elimina los espacios en blanco que
// yo no los veo como espacios en blanco no se que sean ya fui checando paso por pas
//despues comparo pero no funcion
for(int i=0;i<2;i++

if(cadenas[i]==cadena2

.
//nunca entra aqui



gracias por su aportacion, he aprendido unas cosas con ustedes, pero sigo con el problema, lo que tengo que haces es un compilador ya lo chice en C, pero lo queria pasar a C# nomas necesito ayuda en eso. :

krlosr

Ver este tema: http://www.softwaremix.net/viewtopic-471548.htm

Enviado desde http://www.softwaremix.net
 

Leer las respuestas

#1 Octavio Hernandez
07/01/2006 - 00:48 | Informe spam
Carlos,

Ya creo que voy entendiendo tu problema.
Cuando en C# dices new char[10], cada uno de los diez caracteres se
inicializa con el carácter nulo ( '\0' ).
El problema es que vienes de C, donde el carácter nulo es terminador de
cadenas, pero en C# no es así !
Eso que tienes al final de la cadena son nulos, no espacios.
Te recomendaría (para un mínimo esfuerzo) inicializar el array con espacios
después de crearlo. Así el Trim() te funcionará más adelante:

char[] arreglo = new char[10];
for (int pos = 0; pos < 10; pos++) arreglo[pos] = ' '; // AGREGAR ESTO
// ...

Salu2 - Octavio

"krlosr" escribió en el mensaje
news:

Pedro ese es mi problema con el arreglo, supongamos que tengo 3 espacios
en el arreglo ocupados de una longitud de 10 pues los demas quedan vacios
y nose como comparar ese arreglo de caracteres con una cadena, he echo
todo lo que me han dicho y no he encontrado una manera pero eso de las
expresiones regulares es lo que voy a intentar haber si puedo solucionarlo

ejemplo mi problema:
static void main()
{
char[] arreglo=new char[10];
arreglo[0]='c';
arreglo[1]='a';
arreglo[2]='r';
//los demas espacios del arreglo quedan vacios
//y al tratar de comparar no se puede
string[] cadenas=new string={"car","jose"};
cadena2=new string(arreglo).Trim;
//l parecer esto no elimina los espacios en blanco que
// yo no los veo como espacios en blanco no se que sean ya fui
checando paso por paso
//despues comparo pero no funciona
for(int i=0;i<2;i++)
{
if(cadenas[i]==cadena2)
{
..
//nunca entra aqui
}
}
}
gracias por su aportacion, he aprendido unas cosas con ustedes, pero sigo
con el problema, lo que tengo que haces es un compilador ya lo chice en C,
pero lo queria pasar a C# nomas necesito ayuda en eso. :S


krlosr


Ver este tema: http://www.softwaremix.net/viewtopic-471548.html

Enviado desde http://www.softwaremix.net


Preguntas similares