Buenas:
Solo es una duda rapida:
¿Como puedo combinar dos chars y que se copie el resultado a otro char?
he pensado esto:
char ola[5]=olass;
char buenas[7]=buenas;
char result[12];
result = ola + buenas;
y quiero que al final la cadena result = olassbuenas. Decirme si es correcto y si no lo es ¿como lo hago?
Gracias.
Es muy simple: con strcat
Es muy simple: con strcat (cadena1, cadena2); Es una función que lo que hace es añadir la cadena 2 a la cadena 1;
De este modo, result será "olassbuenas".
Por cierto, la declaración de los char es incorrecta. Tienes que usar las comillas para indicar que es una cadena de texto:
Proyectos en curso
El Taller de Eglomer
voy a probar y despues edito
voy a probar y despues edito
Edito: gracias, pero ahora ¿Hay alguna forma de escribir la variable, pero que no la coja con comillas???
me explico
char ola[5]="holas";
yo quiero que esa variable la cambie a otro tipo en la que no se usen comillas como si fueran texto
yo quiero que al poner la variable ola en una funcion la cambie por holas y no "holas"
Be Libre my Friend.
Me parece
que no tienes muy claro cómo funcionan las cadenas de texto. Las dobles comillas indican que se trata de una cadena de texto, no forma parte de él. Por tanto si escribes la cadena las comillas no aparecerán.
Te recomiendo que busques tutoriales de chars para aclarar tus conceptos.
Salu2
Eso ya lo se, yo lo que
Eso ya lo se, yo lo que necesito es poner de tal forma el char que cuando lo lea una funcion no lo lea como tecto sino como:
abz no "abz"
Be Libre my Friend.
No entiendo
¿Leer su equivalente ASCII? Las cadenas no tienen tal equivalente, a menos que descompongas la cadena en chars.
abz por sí solo no son datos que C pueda manejar, ni siquiera te lo reconocerá como dato, sino como el nombre de una variable, y si no está declarada te dará error.
ok, ok. Intentare con un
ok, ok. Intentare con un void.
Una ultima duda tengo este codigo:
REG_DISPCNT = 0x10000;
REG_DISPCNT |= (1 << 11);
REG_BG3CNT = BG_32x32 | BG_COLOR_256 | BG_MAP_BASE(0) | BG_TILE_BASE(1);
VRAM_A_CR = VRAM_ENABLE | VRAM_A_MAIN_BG;
memcpy ((void *) BG_TILE_RAM (1), sextafaseTiles_bin, sextafaseTiles_bin_size);
memcpy ((void *) BG_MAP_RAM (0) ,sextafaseMap_bin, sextafaseMap_bin_size );
memcpy ((void *) BG_PALETTE, sextafasePal_bin, sextafasePal_bin_size );
Pero no consigo ponerlo para que funcione en la pantalla de abajo. ¿Alguna idea? He probado con:
REG_DISPCNT_SUB = 0x10000;
REG_DISPCNT_SUB |= (1 << 11);
REG_BG3CNT_SUB = BG_32x32 | BG_COLOR_256 | BG_MAP_BASE(0) | BG_TILE_BASE(1);
VRAM_A_CR = VRAM_ENABLE | VRAM_A_MAIN_BG;
memcpy ((void *) BG_TILE_RAM (1), sextafaseTiles_bin, sextafaseTiles_bin_size);
memcpy ((void *) BG_MAP_RAM (0) ,sextafaseMap_bin, sextafaseMap_bin_size );
memcpy ((void *) BG_PALETTE, sextafasePal_bin, sextafasePal_bin_size );
Pero no se puestra nada. Ayuda
Be Libre my Friend.
Yo no veo
que modifiques nada. ¿Será por eso? xD
No conozco libnds pero imagino que la cosa está tanto en en banco de memoria que usas (me parece que el banco A no es accesible para la pantalla inferior) y la línea
VRAM_A_MAIN_BG
que seríaVRAM_A_SUB_BG
, suponiendo que el banco A sea el correcto.Mucho más no puedo ayudarte, más que dándote este enlace.
Salu2
Era eso y un par de problemas
Era eso y un par de problemas mas. Gracias por todo.