- posted
hace 18 años
duca en lenguaje CCS
- Vote on answer
- posted
hace 18 años
Carmelo J. Morales Muñoz escribió:
Suponiendo que el tipo string sea un array de char (no conozco CCS), puedes hacer:
char c, Cadena[5];
c = 'q'; Cadena[0] = c; Cadena[1] = 0;
Tambien:
sprintf(Cadena, "%c", c);
char miArreglo[30] = "Ya esta inicializado";
Normalmente puedes hacer char arreglo[] = "Test", y el compilador se encarga de darle el tamaño necesario para almacenar la cadena, en este caso 5. Si no lo inicializas, el compilador debe considerarlo como un tipo incompleto y no dar error, esperando a que se complete posteriormente.
La memoria disponible. Comprueba en la documentación de CCS si la memoria que utiliza es ROM o RAM, depende del compilador. Puedes utilizar el modificador const para indicar al compilador que lo quieres en ROM, aunque no todos los compiladores se portan igual.
-- Saludos Miguel Giménez
- Vote on answer
- posted
hace 18 años
un manualillo básico de C seguramente no te vendría mal, porque es de suponer que la ayuda de tu compilador sono explicará lo que sea diferencte de un c estandard. yo no uso C en los pics, pero al menos en el c normal (por no decir estandard, que son palabras mayores) un string es un array (arreglo) de bytes acabado en el asci 0, de modo que para convertir un caracter (byte leido del teclado) en string, lo pones en un array así por ejemplo:
char str[2]; char c;
..... str[1] = 0; while(1){ c = getchar(); str[0] = c; printf(str); }
//Inicializar un arreglo: char str[20]="20 bytes"; //Idem sin especificar tamaño char str[]="Mejor así";
- Vote on answer
- posted
hace 18 años
- Vote on answer
- posted
hace 18 años
- Vote on answer
- posted
hace 18 años
En su dia ya te lo dije, y te lo repito strcpy no es para inicializar arrays de char(no existen las strings en C), sino memset.
Examples: memset(arrayA, 0, sizeof(arrayA));
memset(arrayB, '?', sizeof(arrayB));
memset(&structA, 0xFF, sizeof (structA));
char bla[4000];
memset(bla, '\0', sizeof(bla));
y ya tienes la preciosa cadena inicializada a \0, caracter ascii 0, lo que significa que esa cadena no contiene ningun caracter.
Pero creo que eso ya te lo han dicho... y yo he tardado 15 minutos en escribir el mensaje XDD con un par de dedos de una mano se me hace lento XD
Es tipico el error en C, porque otros lenguajes son menos sutiles en este aspecto pero C es muy estricto, sino inicializas tu no lo hara el, sencillo eh?. Si tu tienes una cadena de 9 caracteres, y usas 8, el ultimo tiene que ser un '\0' o C no trabajara bien con esa array de 9 chars. Para eso que quieres hacer ahi una forma mucho mas sencilla:
sprintf(comando, "%c\0", caracter);
--
Saludos.
"Carmelo J. Morales Muñoz" escribió en el mensaje news:t6Xle.309591$ snipped-for-privacy@news-reader.eresmas.com...
- Vote on answer
- posted
hace 18 años
- Vote on answer
- posted
hace 18 años
- Vote on answer
- posted
hace 18 años
- Vote on answer
- posted
hace 18 años
- Vote on answer
- posted
hace 18 años