Поиск строки в тексте

Тема в разделе "Arduino & Shields", создана пользователем Кирилл Разыграев, 23 сен 2018.

  1. Добрый день! Помогите пожалуйста.
    Я делаю отслеживание посылок на ардуино. Получил с сайта отслеживания тонну текста. Как теперь из него вытащить нужные мне строки?
     
  2. Igor68

    Igor68 Гуру

    Код (C++):
    /* === выборка значений ключей из строк ===
    inbuf  - исходная строка для разбора
    inref  - имя ключа в исходной строке
    output - вывод значения ключа
    !!! - имя ключа и его значение в исходной строке засеняются
    пробелами
    */

    __inline int strval(char * inbuf, char * inref, char * output)
    {
        char        * p;
        uint8_t        m = 0;
        uint8_t        n = 0;
        uint8_t        kflag = 0;
        if((p = strstr(inbuf, inref)) != NULL)
        {
            while(1)
            {
                if(((*(char*)(p + m)) == '\n') ||
                ((*(char*)(p + m)) == '\r'))
                    break;
                else if((*(char*)(p + m)) == ' ')
                    kflag = 0xFF;
                else if(kflag)
                {
                    (*(char*)(output + n)) = (*(char*)(p + m));
                    n++;
                }
                (*(char*)(inbuf + m)) = ' ';
                m++;
            }
            return 1;
        }
        else
            return 0;
    }
    А так применять:
    Код (C++):
    res = strval((char*)(wsd->inbuffer), "Sec-WebSocket-Key:", (char*)(wsd->Sec_WebSocket_Key));
        if(res)
            printf("Sec-WebSocket-Key: %s\n", wsd->Sec_WebSocket_Key);
     
    Если значение найдено печатаем значение... это из websocket тут:
    http://forum.amperka.ru/threads/websocket-на-Си-имеет-ли-кто-опыт.15338/
    Всё на Си... Может будет пригодно как пример.
     
    NikitOS нравится это.
  3. DIYMan

    DIYMan Guest

    Например, strstr.