Go Down

Topic: Comparación datos de cadena con EEPROM (SOLUCIONADO) (Read 1 time) previous topic - next topic

noter

¿Qué se supone que hace este comando, por ejemplo?
unsigned long num1 = 't1';

PascuaL


¿Qué se supone que hace este comando, por ejemplo?
unsigned long num1 = 't1';

' Yo suponía ' que ese comando iba a convertir en char lo que contuviera t1.

noter

Ese comando, convierte a unsigned long no sé muy bien el qué. Yo el único uso que conozco de las comillas simples es el de asignar el valor de un caracter a algo, es decir, su valor ascii. En tu primer ejemplo:
Quote
int t='0';
int t1='0';
int t2='0';
int t3='0';
unsigned long num = t;
unsigned long num1 = t1;
unsigned long num2 = t2;
unsigned long num3 = t3;
char usuario[5]={num,num1,num2,num3};


Podrías, perfectamente, haber asignado directamente char usuario[5]={t,t1,t2,t3} (por cierto, usuario[4] no lo usas) y el array contendría los valores ascii de t-t3. Sin pasos intermedios, podrías almacenar directamente char usuario[5]={'0','0','0','0'} y contendría lo mismo, y si lo que quieres es almacenar directamente un valor, en lugar de caracteres ascii, char usuario[5]={0,0,0,0} (sin las comillas simples).
A partir de aquí, ¿Qué vas a comparar? Si vas a cotejar byte a byte caracteres, no es necesario hacer conversiones, ya que si, por ejemplo char a='8', a=='8' independientemente de que en la memoria no haya un 8, sino el valor ascii de '8'. Si lo que deseas es obtener el valor 'puro' del dígito para realizar algún cálculo, deberás restar del ascii del dígito el valor ascii del cero, osea int x=a-'0', pero esto no tiene mucho sentido, a no ser que quieras crear una función para convertir varios dígitos en un int, que se haría más o menos así:
int valor;
char digitos[]={'1','7','6','8'};
valor=(digitos[0]-'0')*1000;
valor+=(digitos[1]-'0')*100;
valor+=(digitos[2]-'0')*10;
valor+=(digitos[1]-'0'); // Aquí valor contendría 1768

PascuaL

Todo lo que has puesto lo he intentado. He convertido a ASCII por una función, luego por atoi.....Al final he hecho una función que devuelve el número que meto pero con 'x', que es lo que la string necesita.
Pero muchas gracias por tu ayuda, ahora necesito simplificar la función(ya que es muy extensa).

PascuaL

Quote

por cierto, usuario[4] no lo usas)

Es obligatorio.

Go Up