[Duda Palib] ¿Como puedo borrar los datos de un char?

Hola estoy haciendo una aplicacion que cuando escribes un texto y aciertas, se borre el texto y puedas escribir de cero.
Entonces quiero borrar los datos de una variable char para luego asignarle unos nuevos datos.
He encontrado estas maneras
strcpy( text, "" );


text[0] = '\0';


pero luego no se le pueden asignar nuevos datos, es decir que si acierto se me borra el text y ya no puedo escribir.
¿Alguna otra manera de hacerlo?
Ese depende de tu código; Porque para borrar el texto, basicamente estas haciendo bien en poner :

text[0] = '\0';

Ya que eso hace que la mayoria de las funciones den por hecho que la cadena text esta vacia.
Como que no peudes asignar nuevos datos? con:
strcpy(text,"nuevo texto");

Asi pones "nuevo texto" en la variable text.
Como te apuntan ahí, si tienes un puntero a char (char*), para que sea una cadena vacía se hace con:

cadena[0]='\0'
o también con
*cadena=0;

Recuerda que cuando usas cadenas, antes debes haber asignado espacio para almacenar los datos.
Si la cadena está inicializada en tiempo de compilación, el compilador hace esto por ti, pero si no, tendrás que usar funciones de gestión de memoria.
SuperJMN escribió:Como te apuntan ahí, si tienes un puntero a char (char*), para que sea una cadena vacía se hace con:

cadena[0]='/0'
o también con
*cadena=0;

Recuerda que cuando usas cadenas, antes debes haber asignado espacio para almacenar los datos.
Si la cadena está inicializada en tiempo de compilación, el compilador hace esto por ti, pero si no, tendrás que usar funciones de gestión de memoria.


la barra está al revés -.-U
Otro modo de hacerlo es así:

cadena[0] = NULL


(No estoy seguro de que funcione pero al menos en Ruby rula D:)
algo como:

text[1] = "";

salu2
Plata escribió:algo como:

text[1] = "";

salu2

Y te dejas la primera letra del array sin borrar... Suponiendo que funcione, claro, porque no se yo si funcionaría...
ANTONIOND escribió:
Plata escribió:algo como:

text[1] = "";

salu2

Y te dejas la primera letra del array sin borrar... Suponiendo que funcione, claro, porque no se yo si funcionaría...


No funcionaría. Además, como dices, el índice sería 0, no 1. Pero creo que la consulta ha quedado ya bastante clara :)
Plata escribió:algo como:

text[1] = "";

salu2


Menuda perla que has soltado. Como dice antonio te dejas el primer elemento del array, y el resto de elementos hasta encontrarse el \0, además de que has usado comillas dobles... vamos, una chapuza xD

Como te han dicho la mejor forma es text[0]='\0' la opcion de text[0]=NULL tampoco funcionaría en este caso.


Edito: Para todo el que le interese, le dejo una referencia a las funciones de C (ANSI) -> http://users.ece.utexas.edu/~adnan/c-refcard.pdf

Un saludo!
jajaja, pues sí, menuda chapuza...recuerdo cuando hace años en clase dabamos los arrays y demás historias, que la gente se le olvidaba ponerle el '\0' para finalizar un array cuando estaba rellenando manualmente un array...y decían que le salían caracteres raros... [carcajad], nos ha jodido...si dejas toda la basura de la memoria en el array jajaja...

un saludo.
Bueno e probado eso que me deciais de borrar la cadena con text[0]='\0'; pero no le e podido asignar nuevas letras con el teclado por que el codigo del teclado lo tenia asi:
letra = PA_CheckKeyboard();
if (letra > 31) {
text[nletra]=letra;
nletra++;
}


else if ((letra == PA_BACKSPACE)&&nletra) {
nletra--;
text[nletra]=" ";
}

y no se podian asignar nuevas letras por lo que lo he cambiado asi:
letra = PA_CheckKeyboard();
if (letra > 31) {
strcpy(text[nletra],letra);
nletra++;
}


else if ((letra == PA_BACKSPACE)&&nletra) { v
nletra--;
strcpy(text[nletra]," ");
}

pero ahora no se por que pero al darle a una letra se queda pillao el teclado y no se le asigna nada.
es porque el strcpy es para cadenas (string copy), y tu estas intentando copiar un char que no es una cadena (letra) a otro char que, aunque sí sea una cadena, la estás poniendo con una dirección de memoria determinada (los corchetes de text[nletra]).
keda escribió:es porque el strcpy es para cadenas (string copy), y tu estas intentando copiar un char que no es una cadena (letra) a otro char que, aunque sí sea una cadena, la estás poniendo con una dirección de memoria determinada (los corchetes de text[nletra]).

Entonces como lo arreglo para que me funcione?
m3dssimply escribió:
keda escribió:es porque el strcpy es para cadenas (string copy), y tu estas intentando copiar un char que no es una cadena (letra) a otro char que, aunque sí sea una cadena, la estás poniendo con una dirección de memoria determinada (los corchetes de text[nletra]).

Entonces como lo arreglo para que me funcione?


letra = PA_CheckKeyboard();
if (letra > 31) {
text[nletra]=letra;
nletra++;
}


else if ((letra == PA_BACKSPACE)&&nletra) { v
nletra--;
text[nletra]=" ";
}

Prueba eso, como solo asignas un caracter, no tienes que usar strcpy. Saluts
Suikoden77 escribió:
m3dssimply escribió:
keda escribió:es porque el strcpy es para cadenas (string copy), y tu estas intentando copiar un char que no es una cadena (letra) a otro char que, aunque sí sea una cadena, la estás poniendo con una dirección de memoria determinada (los corchetes de text[nletra]).

Entonces como lo arreglo para que me funcione?


letra = PA_CheckKeyboard();
if (letra > 31) {
text[nletra]=letra;
nletra++;
}


else if ((letra == PA_BACKSPACE)&&nletra) { v
nletra--;
text[nletra]=" ";
}

Prueba eso, como solo asignas un caracter, no tienes que usar strcpy. Saluts

eso ya lo probado y no funciona. Lo que me pasa con ese codigo es que una vez que hay borrado los datos del char no me deja introducir ninguna letra con el teclado.
tendriamos que ver mas parte del codigo, entonces
Suikoden77 escribió:tendriamos que ver mas parte del codigo, entonces

Os explico:
Estoy haciendo un homebrew que al escribir una palbra y darle al enter, si la palabra que se escribe coincide con un cadena, pasas a la siguiente fase (que es otrapalabra diferente) si no pues te pone la consola "mal" .
El homebrew lo tengo estrucurado
Este es el codigo:
codigo de juego.h:
#ifndef JUEGO_H
#define JUEGO_H

void teclado(u8 num,char resp[num], u8 next);
char text[200];
s32 nletra = 0;
char letra = 0;
void teclado(u8 num,char resp[num], u8 next){



if(teclado1 == false){
PA_InitText(1, 0);
PA_InitKeyboard(2);
PA_KeyboardIn(20, 95);
teclado1 = true;
}

letra = PA_CheckKeyboard();
if (letra > 31) {
text[nletra]=letra;
nletra++;
}


else if ((letra == PA_BACKSPACE)&&nletra) {
nletra--;
text[nletra]=" ";
}
PA_OutputSimpleText(1, 8, 11, text);
if (letra == PA_ENTER && strcmp(text,resp) == 0){
switch (next)
{
case 1:
PA_OutputSimpleText(1, 7, 1, "Bien ");
juego4 = false;
juego1 = true;
PA_ClearTextBg(1);
text[0]='\0';
nivel1();
break;

case 2:
PA_OutputSimpleText(1, 7, 1, "Bien ");
juego1 = false;
juego2 = true;
PA_ClearTextBg(1);
text[0]='\0';
nivel2();
break;

case 3:
PA_OutputSimpleText(1, 7, 1, "Bien ");
juego2 = false;
juego3 = true;
PA_ClearTextBg(1);
text[0]='\0';
nivel3();
break;

case 4:
PA_OutputSimpleText(1, 7, 1, "Bien ");
juego3 = false;
juego4 = true;
PA_ClearTextBg(1);
text[0]='\0';
nivel4();

}

}
if (letra == PA_ENTER && strcmp(text,resp) != 0){
   PA_OutputSimpleText(1, 7, 1, "Mal ");
}
}

#endif


codigo de nivel1.h:
#ifndef NIVEL1_H
#define NIVEL1_H
void nivel1 (void);
void nivel1 (void){
teclado(7,"platano",2);
}

#endif


codigo de nivel2.h:
#ifndef NIVEL1_H
#define NIVEL1_H
void nivel1 (void);
void nivel1 (void){
teclado(7,"platano",2);
}

#endif
Suikoden77 escribió:
m3dssimply escribió:
keda escribió:es porque el strcpy es para cadenas (string copy), y tu estas intentando copiar un char que no es una cadena (letra) a otro char que, aunque sí sea una cadena, la estás poniendo con una dirección de memoria determinada (los corchetes de text[nletra]).

Entonces como lo arreglo para que me funcione?


letra = PA_CheckKeyboard();
if (letra > 31) {
text[nletra]=letra;
nletra++;
}


else if ((letra == PA_BACKSPACE)&&nletra) { v
nletra--;
text[nletra]=" ";
}

Prueba eso, como solo asignas un caracter, no tienes que usar strcpy. Saluts



Debería ser text[nletra]=' ';

¿La v de despues de la llave pinta algo? xD
Sepho escribió:
Suikoden77 escribió:
letra = PA_CheckKeyboard();
if (letra > 31) {
text[nletra]=letra;
nletra++;
}


else if ((letra == PA_BACKSPACE)&&nletra) { v
nletra--;
text[nletra]=" ";
}

Prueba eso, como solo asignas un caracter, no tienes que usar strcpy. Saluts



Debería ser text[nletra]=' ';

¿La v de despues de la llave pinta algo? xD


Sip, me di cuenta justo despues de que m3dssimply pusiera el codigo de su juego, pero me tuve que ir y no lo arregle. Lo de la v no pinta nada,jeje.

En fin, contestando al autor del post. Creo que la forma de organizar tu proyecto es un poco liosa. Yo lo que haria seria tener una funcion llamada nivel, con un parametro cadena con el nombre de la palabra a acertar, y que devuelva un entero que indique si te pasaste el nivel o no.
Dentro de la funcion nivel cargaria el teclado de la palib, y crearia una cadena del tamaño de la palabra a acertar, en la que todo son espacios, o guiones bajos (puedes usar strlen para conocer el tamaño de la cadena, y luego usar un calloc para crear esta cadena). Luego esperaria a que se llene la palabra y la compararia, si acerto sale del nivel y si no le quitaria una oportunidad (tendrias varias). Al acabar el nivel (ya sea porque has perdido o te lo has pasado) eliminaria el teclado, y punto. Luego en el principal solo tienes que ir llamando a esta funcion, y si quieres entre funcion y funcion poner algun grafico indicando a que nivel quieres acceder, etc.

Ahora, solo tienes que ir cambiando los guiones por las letras, y si le das a borrar sustituirlo otra vez por guiones bajos, (o espacios).

Espero haberme semi explicado.
Es que vi la v en los primeros posts y supuse que sería un fallo al hacer Ctrl+V :p
Suikoden77 escribió:
Sepho escribió:
Suikoden77 escribió:
letra = PA_CheckKeyboard();
if (letra > 31) {
text[nletra]=letra;
nletra++;
}


else if ((letra == PA_BACKSPACE)&&nletra) { v
nletra--;
text[nletra]=" ";
}

Prueba eso, como solo asignas un caracter, no tienes que usar strcpy. Saluts



Debería ser text[nletra]=' ';

¿La v de despues de la llave pinta algo? xD


Sip, me di cuenta justo despues de que m3dssimply pusiera el codigo de su juego, pero me tuve que ir y no lo arregle. Lo de la v no pinta nada,jeje.

En fin, contestando al autor del post. Creo que la forma de organizar tu proyecto es un poco liosa. Yo lo que haria seria tener una funcion llamada nivel, con un parametro cadena con el nombre de la palabra a acertar, y que devuelva un entero que indique si te pasaste el nivel o no.
Dentro de la funcion nivel cargaria el teclado de la palib, y crearia una cadena del tamaño de la palabra a acertar, en la que todo son espacios, o guiones bajos (puedes usar strlen para conocer el tamaño de la cadena, y luego usar un calloc para crear esta cadena). Luego esperaria a que se llene la palabra y la compararia, si acerto sale del nivel y si no le quitaria una oportunidad (tendrias varias). Al acabar el nivel (ya sea porque has perdido o te lo has pasado) eliminaria el teclado, y punto. Luego en el principal solo tienes que ir llamando a esta funcion, y si quieres entre funcion y funcion poner algun grafico indicando a que nivel quieres acceder, etc.

Ahora, solo tienes que ir cambiando los guiones por las letras, y si le das a borrar sustituirlo otra vez por guiones bajos, (o espacios).

Espero haberme semi explicado.

¿¿Puedes poner un ejemplo de strlen y calloc??
m3dssimply escribió:¿¿Puedes poner un ejemplo de strlen y calloc??



En mi primera respuesta te he adjuntado un pdf con la lista de funciones :)
m3dssimply escribió:¿¿Puedes poner un ejemplo de strlen y calloc??


Vamos a ver, supongamos que tienes la funcion nivel, de tipo:

int nivel( char palabra[]){
int longitud=strlen(palabra); //Con esto ya conoces la longitud de la palabra metida.
char * texto
texto = (char *) calloc (longitud, sizeof(char));//puede que sea longitud + 1
int i;
for(i=0;i<longitud;i++) texto[i]=' ';
}
ahi ya tienes creado una cadena de caracteres vacia en la que poder moverse libremente. Puede que algo este mal, ya que hace bastante que no me manejo por c y no me acuerdo como iba lo de las cadenas. chao
Suikoden77 escribió:
m3dssimply escribió:¿¿Puedes poner un ejemplo de strlen y calloc??


Vamos a ver, supongamos que tienes la funcion nivel, de tipo:

int nivel( char palabra[]){
int longitud=strlen(palabra); //Con esto ya conoces la longitud de la palabra metida.
char * texto
texto = (char *) calloc (longitud, sizeof(char));//puede que sea longitud + 1
int i;
for(i=0;i<longitud;i++) texto[i]=' ';
}
ahi ya tienes creado una cadena de caracteres vacia en la que poder moverse libremente. Puede que algo este mal, ya que hace bastante que no me manejo por c y no me acuerdo como iba lo de las cadenas. chao

Hola he hecho lo que tu me as dicho pero al pasar al siguiente nivel no se puede ver o no se asignan los caracteres.
Antes de poner la funcion (void nivel( char palabra[], int next); // e puesto lo del int next por que no entiendo que nº hay que de volver si pongo "int nivel") declaro las variables:
char* texto;
u32 nletra = 0;
char letra = 0;
int i;

En un archivo .h tengo un un booleano llamado teclado1 y en el main C esta en false ese booleano. Con este booleano lo que hago es que si el booleano esta en false se inicializa el teclado, se inicializa el texto, se pone el teclado, se calcula el tamaño de la variable "palabra", y se le asigna el tamaño al texto.(lo hago asi por que si no se hace infinitas veces ya que la funcion nivel la tengo dentro del while del main.c)
if(teclado1 == false){

int longitud=strlen(palabra);
texto = (char *) calloc (longitud, sizeof(char));

for(i=0;i<longitud;i++){
texto[i]=' ';
}

PA_InitText(1, 0); // Iniciamos el texto
   PA_InitKeyboard(2);// Cargamos el teclado en la capa 2...
   PA_KeyboardIn(20, 95);
teclado1 = true;
}

Y luego si se da a alguna letra , se le añade esa letra al texto :
letra = PA_CheckKeyboard();
if (nletra< i){ // esto lo hago para que no se pueda escribir nada mas hasta el tamaño de "palabra"
if (letra > 31) {
texto[nletra]=letra;
nletra++;
}
}

y si se le da al boton retroceso se pone un __ a la anterior letra del texto:
if (nletra >= 1){// esto lo hago para evitar que nletra pase a los numeros negativos
if (letra == PA_BACKSPACE) {
nletra--;
texto[nletra]=" ";
}
}

A continuacion imprimo el texto:
PA_OutputSimpleText(1, 8, 11, texto);

Y finalmente si se pulsa enter y el texto coincide con la palabra, segun el nivel que haya puesto en la funcion nivel(int next) pues asi va a un nivel o a otro:
if (letra == PA_ENTER && strcmp(texto,palabra) == 0){
switch (next)
{
case 2:
PA_OutputSimpleText(1, 10, 1, "Bien ");
juego1 = false; // esto es por que en el main.c tengo puesto booleanos , de k si juego 1 es true pues vas al nivel 1 , si el nivel 2 es true pues vas al nivel 2 etc
juego2 = true;
PA_ClearTextBg(1);
texto[0]='\0';
teclado1 = false;
nivel2();
break;
// aqui van mas case pero son mas o menos =

Y aqui esta el codigo de juego.h. Por favor decidme por que no se puede escribir cuando se pasa al siguiente nivel T.T:
void nivel( char palabra[], int next);
char* texto;
u32 nletra = 0;
char letra = 0;
int i;
void nivel( char palabra[], int next){



if(teclado1 == false){

int longitud=strlen(palabra);
texto = (char *) calloc (longitud, sizeof(char));

for(i=0;i<longitud;i++){
texto[i]=' ';
}

PA_InitText(1, 0); // Iniciamos el texto
   PA_InitKeyboard(2);// Cargamos el teclado en la capa 2...
   PA_KeyboardIn(20, 95);
teclado1 = true;
}
letra = PA_CheckKeyboard();
if (nletra< i){
if (letra > 31) {
texto[nletra]=letra;
nletra++;
}
}
if (nletra >= 1){
if (letra == PA_BACKSPACE) {
nletra--;
texto[nletra]=" ";
}
}
PA_OutputSimpleText(1, 8, 11, texto);

if (letra == PA_ENTER && strcmp(texto,palabra) != 0){
   PA_OutputSimpleText(1, 7, 1, "Mal ");   
}
if (letra == PA_ENTER && strcmp(texto,palabra) == 0){
switch (next)
{
case 1:
PA_OutputSimpleText(1, 7, 1, "Bien ");
juego4 = false;
juego1 = true;

nivel1();
break;

case 2:
PA_OutputSimpleText(1, 10, 1, "Bien ");
juego1 = false;
juego2 = true;
PA_ClearTextBg(1);
texto[0]='\0';
teclado1 = false;
nivel2();
break;

case 3:
PA_OutputSimpleText(1, 7, 1, "Bien ");
juego2 = false;
juego3 = true;

nivel3();
break;

case 4:
PA_OutputSimpleText(1, 7, 1, "Bien ");
juego3 = false;
juego4 = true;

nivel4();

}

}

}

#endif
A ver, aqui te paso lo que he hecho. Hazme caso de lo que te digo en algunos puntos. Saludos

// Includes
#include <PA9.h>       // Include for PA_Lib
#include <string.h>  //Es para que puedas usar funciones como strlen, strcpy. Si no lo pones, no
//funcionan!!

/*Solo te enseño como debería de ser la función nivel, el resto lo tendras que hacer tu.
pero por favor, lo que me pasaste era un caos, asi que lo mejor sera que dejes de hacer includes
sin sentido y trabajar todo en el main, que tampoco creo que vayas a tener un proyecto enorme
como para tener que dividir funcion por funcion*/

int nivel(char palabra[]);
/*Aqui antes del main declaras todas las funciones que vas a usar. El int de esta funcion
significa que devuelve un entero, que es para lo que se usa el return. En mi caso lo usaré
para ver si se paso el nivel. ¿Dónde desarrollas las funciones? Debajo del main.*/

int main(int argc, char ** argv){
  PA_Init();
  PA_InitVBL();
  PA_InitText(1, 0);
  int juego[5];//En vez de usar juego1,juego2,juego3, puedes crear un array de enteros que es mas comodo.
 
   // Infinite loop to keep the program running
   while (1){
     juego[0]=nivel("zapato");
     juego[1]=nivel("cardo");
     juego[2]=nivel("salto");
        
      PA_WaitForVBL();
   }

   return 0;
}

int nivel( char palabra[]){
  int i;
  int nletra=0;
  int letra;
  int salir=0;
  int longitud=strlen(palabra);
  char *texto;
  texto = (char *) calloc (longitud, sizeof(char));
  for(i=0;i<longitud;i++){
  texto[i]=' ';
  }
  PA_InitKeyboard(2);// Cargamos el teclado en la capa 2...
  PA_KeyboardIn(20, 95);
 
  while(!salir){//Supongo que la condicion de salida es acertar la palabra
    PA_WaitForVBL();
    letra = PA_CheckKeyboard();
    if (nletra< longitud && letra>31){
      texto[nletra]=letra;
      nletra++;
    }
   
    if (nletra >= 1 && letra==PA_BACKSPACE){
      nletra--;
      texto[nletra]=' ';
    }
    //PA_OutputSimpleText(1, 8, 11, texto);ESTO TE FUNCIONA??
    PA_OutputText(1,8,11,"%s",texto);
    if (letra == PA_ENTER && strcmp(texto,palabra) != 0){
      PA_OutputSimpleText(1, 7, 1, "Mal ");   
    }
    if (letra == PA_ENTER && strcmp(texto,palabra) == 0){
      PA_OutputSimpleText(1, 7, 1, "Bien ");
      salir=1;
    }
  }
  free(texto);
  PA_OutputText(1,8,11,"             ");
  PA_KeyboardOut();
  return salir;
}


Por cierto, te aconsejaría que usaras las funciones tolower o toupper porque puede que por una diferencia en el tamaño de la letra creas que la estas cagando. Quiero decir, para C Alto y alto son palabras diferentes.
Suikoden77 escribió:A ver, aqui te paso lo que he hecho. Hazme caso de lo que te digo en algunos puntos. Saludos

// Includes
#include <PA9.h>       // Include for PA_Lib
#include <string.h>  //Es para que puedas usar funciones como strlen, strcpy. Si no lo pones, no
//funcionan!!

/*Solo te enseño como debería de ser la función nivel, el resto lo tendras que hacer tu.
pero por favor, lo que me pasaste era un caos, asi que lo mejor sera que dejes de hacer includes
sin sentido y trabajar todo en el main, que tampoco creo que vayas a tener un proyecto enorme
como para tener que dividir funcion por funcion*/

int nivel(char palabra[]);
/*Aqui antes del main declaras todas las funciones que vas a usar. El int de esta funcion
significa que devuelve un entero, que es para lo que se usa el return. En mi caso lo usaré
para ver si se paso el nivel. ¿Dónde desarrollas las funciones? Debajo del main.*/

int main(int argc, char ** argv){
  PA_Init();
  PA_InitVBL();
  PA_InitText(1, 0);
  int juego[5];//En vez de usar juego1,juego2,juego3, puedes crear un array de enteros que es mas comodo.
 
   // Infinite loop to keep the program running
   while (1){
     juego[0]=nivel("zapato");
     juego[1]=nivel("cardo");
     juego[2]=nivel("salto");
        
      PA_WaitForVBL();
   }

   return 0;
}

int nivel( char palabra[]){
  int i;
  int nletra=0;
  int letra;
  int salir=0;
  int longitud=strlen(palabra);
  char *texto;
  texto = (char *) calloc (longitud, sizeof(char));
  for(i=0;i<longitud;i++){
  texto[i]=' ';
  }
  PA_InitKeyboard(2);// Cargamos el teclado en la capa 2...
  PA_KeyboardIn(20, 95);
 
  while(!salir){//Supongo que la condicion de salida es acertar la palabra
    PA_WaitForVBL();
    letra = PA_CheckKeyboard();
    if (nletra< longitud && letra>31){
      texto[nletra]=letra;
      nletra++;
    }
   
    if (nletra >= 1 && letra==PA_BACKSPACE){
      nletra--;
      texto[nletra]=' ';
    }
    //PA_OutputSimpleText(1, 8, 11, texto);ESTO TE FUNCIONA??
    PA_OutputText(1,8,11,"%s",texto);
    if (letra == PA_ENTER && strcmp(texto,palabra) != 0){
      PA_OutputSimpleText(1, 7, 1, "Mal ");   
    }
    if (letra == PA_ENTER && strcmp(texto,palabra) == 0){
      PA_OutputSimpleText(1, 7, 1, "Bien ");
      salir=1;
    }
  }
  free(texto);
  PA_OutputText(1,8,11,"             ");
  PA_KeyboardOut();
  return salir;
}


Por cierto, te aconsejaría que usaras las funciones tolower o toupper porque puede que por una diferencia en el tamaño de la letra creas que la estas cagando. Quiero decir, para C Alto y alto son palabras diferentes.

Muchas gracias por ayudarme, pero hay una cosa que no entiendo y es el int juego[5]. ¿Porque se le puede asignar una funcion? ¿No cuando es int es un numero lo que se le asigna? Y otra cosa, a la hora de poner el menu y la presentacion.. ¿lo pongo todo esto tambien en el main? ¿o a parte en archivos .h?
Saludos y gracias de nuevo :)
Ahí está declarando un array, y luego a varios elementos les asigna el valor (un int) devuelto por las funciones creadas más abajo...
27 respuestas