конвертация char to int

ramon_sobaka
Offline
Зарегистрирован: 24.10.2012

С ком порта приходят данные: fr=232, fr=343, fr=454.  Опредиляю что ето именно та переменная что мне нужно str - строка принятая с ком порта

char fr[]="fr=";
if (str[0] == fr[0] & str[1] == fr[1] & str[2]==fr[2])

но как теперь, например, переменной int a присвоить данные fr= ...чтобы а=232 из str ?

ramon_sobaka
Offline
Зарегистрирован: 24.10.2012
Пусть гуру посмотрят может есть вариант попроще того что я делал:  
if (str[0] == fr[0] & str[1] == fr[1] & str[2]==fr[2])
{
  Serial.print("Value send: ");
  int a = str[3]-48;
  int b = str[4]-48;
  int c = str[5]-48;
  int d = str[6]-48;
  int abcd = 0;
  if (a==-48 & b==-48 & c==-48 & d==-48)
  {
    abcd = 0;
  }
  else if (a>=0 & b>=0 & c>=0 & d>=0)
  {
    abcd = a*1000 + b*100 + c*10 + d;
  }
  else if (d==-48 & a>=0 & b>=0 & c>=0)
  {
    abcd = a*100 + b*10 + c;
  }
  else if (d==-48 & c==-48 & a>=0 & b>=0 )
  {
    abcd = a*10 + b;
  }
  else if (d==-48 & c==-48 & b==-48 & a>=0)
  {
    abcd = a;
  }
  else
  {
   abcd = 0; 
  }
  Serial.println(abcd);

 

 

tsostik
Offline
Зарегистрирован: 28.02.2013

result=atoi(str+3);

maksim
Offline
Зарегистрирован: 12.02.2012
ramon_sobaka
Offline
Зарегистрирован: 24.10.2012

я abcd отправлял на порт просто чтоб посмотреть правильность, а на самом деле я буду использовать abcd как переменную дальше в программе.