Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: [GB] en 23 Julio 2010, 20:40 pm



Título: ¿Como Recorrer un array en C++ ?
Publicado por: [GB] en 23 Julio 2010, 20:40 pm
Resulta que estoy guardando elementos en un array 1 a 1 con esas funciones que creo que lo hacen bien, el tema es que no se como recorrer ese array (wordList), el problema esta en el for de abajo wordList.Lenght o sea que ahí quiero obtener el count del array para recorrerlo hasta esa posición pero me marca un error subrayandome el wordList... me dice "la expresión debe tener un tipo de clase" :S alguna idea? abajo dejo parte del código:

void appendElement(const char*s,char a[][30],int&n);
....
....
...
if (!strcmp(word[p], cmd_addw))
{
int n=0;
char wordList [30] [lenght];
appendElement(word[p+1], wordList, n);

if(silenced == FALSE){
for (int i=0;i<wordList.Lenght;i++) {
MessageBox(0, wordList, "Demo", 0);
}
}
}

void appendElement(const char*s,char a[][30],int&n)
{
strcpy(a[n],s);
n++;
return;
}


Título: Re: ¿Como Recorrer un array en C++ ?
Publicado por: .:BlackCoder:. en 23 Julio 2010, 21:23 pm
Es que estas tratando a wordList como una clase cuando haces .Xcosa... Aunque no comprendo bien que hace ese for  :-\ esta raro...

Si lo que quieres es mostrar las cadenas del vector de cadenas... puedes hacerlo hasta lenght que lo utilizas cuando declaras la matriz aunque no lo veo declarado.... Algo asi..
Código
  1. for (int i=0;i<lenght;i++)
  2. cout<<wordList[i];

Saludos...


Título: Re: ¿Como Recorrer un array en C++ ?
Publicado por: [GB] en 23 Julio 2010, 21:54 pm
Claro lo que pasa es que en este foro cuando pones [ i ] junto no sale no se xq :S entonces claro, ese for quedo absudro xDDD, ahi va como seria:

for (int i=0;i<Lenght;i++) {
MessageBox(0, wordList[ i ], "Demo", 0);

Lo que estoy intentando hacer es recorrer ese vector e ir imprimiendo en un messagebox todo lo que esta guardado allí hasta que encuentre el primer lugar vacio y ahí se salga y deje de recorrer, no se si se entiende xD

Quise imprimir tambien el n (int) dentro de un for para ver si se incrementaba o no con messagebox pero me dio problemas de tipos.

Lo intente castear a char:

MessageBox(0, (char *)n, "Demostracion simple", 0);

si bien no me da error al compilar el momento de ejecutarlo se cae el programa xDDD .. me tiene loco este c++ ...


Título: Re: ¿Como Recorrer un array en C++ ?
Publicado por: .:BlackCoder:. en 23 Julio 2010, 22:05 pm
Lo que pasa es que yo no se de MsgBox  :xD Al menos no en C++... Para eso estan las etiquetas GeSHi... Para que se vea el codigo bien... Cuando vas a escribir un msg arriba de las ultimas caritas hay un menu deplegable que dice GeSHi... Buscas tu lenguaje y entre las clausulas q el agrega colocas tu code y se va a ver bien...

Saludos...


Título: Re: ¿Como Recorrer un array en C++ ?
Publicado por: Eternal Idol en 23 Julio 2010, 23:38 pm
Lo que estoy intentando hacer es recorrer ese vector e ir imprimiendo en un messagebox todo lo que esta guardado allí hasta que encuentre el primer lugar vacio y ahí se salga y deje de recorrer, no se si se entiende xD

Se entiende pero para eso necesitarias tener un array de punteros (punteros a cadena en este caso) ... me parece que buscas hacer esto:

Código
  1. char *msgList[] =
  2. {
  3.  "Mensaje 1",
  4.  "Mensaje 2",
  5.  "Mensaje 3",
  6.  0 //fin
  7. };
  8.  
  9. for (char **i = msgList; *i; i++)
  10. {
  11.  MessageBox(0, *i, *i, 0);
  12. }

Sino inicializa todas las cadenas a 0 (ZeroMemory/memset) y comproba su tamaño con strlen.