¿Como Recorrer un array en C++ ?

Iniciado por [GB], 23 Julio 2010, 20:40 PM

0 Miembros y 1 Visitante están viendo este tema.

[GB]

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;
}

.:BlackCoder:.

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 (cpp) [Seleccionar]
for (int i=0;i<lenght;i++)
cout<<wordList[i];


Saludos...
"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja




[GB]

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++ ...

.:BlackCoder:.

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...
"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja




Eternal Idol

Cita de: [GB] en 23 Julio 2010, 21:54 PMLo 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 (cpp) [Seleccionar]
char *msgList[] =
{
 "Mensaje 1",
 "Mensaje 2",
 "Mensaje 3",
 0 //fin
};

for (char **i = msgList; *i; i++)
{
 MessageBox(0, *i, *i, 0);
}


Sino inicializa todas las cadenas a 0 (ZeroMemory/memset) y comproba su tamaño con strlen.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón