String или познание дзена

Тема в разделе "Arduino & Shields", создана пользователем Paromond, 29 ноя 2020.

  1. Paromond

    Paromond Нуб

    [​IMG]
    хотел приравнять переменную "DD" к первому символу из строки "date" я ожидал получить ответ "2" а не "57"
    P.S. я в курсе что можно было вычлинять нужное из строки "date"
     
  2. akl

    akl Гуру

    так вроде '2' лежит в ячейке date[0], а в date[1] лежит '9', которое как раз равно 57
     
    Paromond и NikitOS нравится это.
  3. Paromond

    Paromond Нуб

    можно по подробнее ? 9=57 в какой то из систем исчисления
     
  4. akl

    akl Гуру

  5. Paromond

    Paromond Нуб

    всё понял. Теперь у меня другой вопрос . Как получить от строки не "символ" а число ?
     
  6. akl

    akl Гуру

    например можно использовать функцию atoi http://www.c-cpp.ru/content/atoi
    но лучше изучить несколько глав учебника "керниган ричи язык программирования си" и можно будет делать со строками всё что угодно любыми способами.
     
  7. Paromond

    Paromond Нуб

    спасибо за наводку . В моём случае , как я понял из одной строки , чтобы получить 3 числа нужно сделать 3 строки , потом воспользоваваться функцией atoi() дабы перевести их в числовой вариант , а затем уже использовать по назначению
     
  8. akl

    akl Гуру

    я бы вместо трех строк использовал указатель, который нацеливал бы на нужное место в строке и скармливал функции atoi
    но можно обойтись совсем без этой функции если учитывать что любой символ одной цифры превращается в число путем вычитания из него числа 0x30
    то есть например вышеупомянутое 29 можно получить так:
    Код (C++):
    int dd=(date[0]-'0')*10+(date[1]-'0');
    но лучше учебник изучить, там реально все довольно просто и быстро изучается - только надо какую-нибудь среду программирования установить чтобы примеры решать.
     
    Paromond нравится это.
  9. Paromond

    Paromond Нуб