Как разбить строку на 2 части и записать в переменную?

в php есть функция explode(), а для ардуино найти не могу(
ситуация такая: я получаю get запрос с адресной строки браузера таким образом:

char c = client.read();
         val += c;
         
        if (c == '\n'){
          
          int ind = val.indexOf(" ");
          int indL = val.lastIndexOf(" ");
          String GET = val.substring(ind+1,indL);
       }

В переменной get я получаю строку: /?w=1
как разбить эту переменную на 2 части? чтобы получить w и 1?

И может ли кто объяснить как работает данный кусок кода?
indexOf Судя по документации я что то ищу… получается я ищу пробел? Но в адресной строке же нет пробела? Почему тогда он его находит? Код был скопирован с другого скетча.

Нету такого языка “ардуино”. Есть C++. Вы бы написали, для какого контроллера вы это ваяете?

Arduino nano + w5500

Убираете первые два символа (GET.remove(0,2)), ищете индекс разделителя (int x = GET.indexOf("=")), читаете то, что до и после него (GET.substring())

А вообще посмотрели бы вы примеры к библиотеке для w5500, наверняка там есть примеры, как разбирать get-запрос

а с чего вы взяли, что находит?
Видимо “в другом скетче” надо было делить строку по пробелу, а у вас это не подходит.

Хм😁 а как тогда я получаю то что идет после 192.168.0.0/
Используя этот код?

Вы получаете кусок строки между первым и последним пробелом, которые, очевидно, в искомой строке есть, даже если вам кажется обратное

1 лайк

Понял вас😁 спасибо за объяснение

А ХЗ как и что Вы там получаете. Вы же полного кода не опубликовали, потому мы можем только догадываться, что там у Вас за строки и что Вы там получаете.

Зачем задавать вопрос без полного кода? Чтобы поглумиться над каждым, кто неправильно догадается что Вы там скрыли? Или зачем?

Никогда не понимал подобных вопросов)
Вопрос встречный к вам: если тот код который идет выше, никакой роли не играет в этом коде, какую информацию вы ходите с того куска кода получить?)
Хотя я не шарю в с++, я шарю в php. И вот вам пример:

function test($a){

If($a==1){

for($i=1;$i=100;$i++){

Эту функция будет выводить только 100

}


}


}

Теперь я спрашиваю: почему у меня выводится только 100, почему не 1,2,3 и т.д и кидаю этот код:


for($i=1;$i=100;$i++){

Эту функция будет выводить только 100

}

И вы спрашиваете: как мы вам поможем, если вы кинули не весь код?

Кто понял о чем я говорю, тот мне дал адекватный ответ)

Конечно не весь.
Если бы ты привел, например, такой код:

for ( $i=1; $i=100; $i++) {

  echo "i == " . $i . "<br>";

}

И при этом бы у тебя выводилось только:

“i == 100”
“i == 100”
“i == 100”
“i == 100”

Вот тогда бы все афигели и начали бы думать. И никто ничего про “неполный код” не сказал бы… ))

ЗЫ: Я тоже “выходец” с php, привыкал долго - но привык ))

Ну просто вопрос был в том, что я получил на данный момент, и как это разбить на части, не понимаю зачем для этого весь код кидать😁

Да, спрашиваю. Потому, что, например, Вы утверждаете, что в строке нет пробелов. А я строки не видел. Мне Вам верить на слово? В программировании на слово не верят никому.

Адекватный код для этого вопроса – это полный код (который я могу просто запустить у себя, безо всяких танцев с бубнами, и посмотреть), в котором присутствует функция разбора и вызов этой функции с некоторой строкой. Вот тогда я вижу всё - что за строка, как передаётся в функцию, что там делается. Смогу запустить, увидеть Вашу проблему своими глазами и предложить решение.

Если Вам реально нужна реальная помощь, то вопросы нужно задавать именно так! Подготовить маленький, но полный код, демонстрирующий проблему и выложить его с пояснениями и вопросами.

Всё, что Вам говорили – говорили исходя из собственных догадок о том как там сделано то, чего Вы не показали. Возможно, в этот раз угадали, бывает. Если Вам это надо, пальцем в небо, ну, тогда …

Вот как раз для того, чтобы человек мог

Впрочем, повторяю, если Вас устраивают догадки … хозяин – барин!

Так то тоже согласен с вами😁 код та самый элементарный… ну хорошо, закину готовый код в течении часа.

val.substring(-1+1,-1)

Даже в пхп нужно использовать кавычки или апострофы))

это числовые индексы, подстрока с такого по такой индекс

Не. В PHP ты не шаришь. Те, хто шарют в php всегда начинают свой вопрос на этом форуме со слова “ПАМАГИТИ!!!” По этому слову мы их и отличаем от знающих еще 20 языков на уровне выше университетского.

2 лайка

Деда, ну не обижай. Я никогда не писал «памагите». Тем не менее из PHP пришел…
Ну предварительно я еще и Делфи занимался, и вижал си упражнялся. Но это всё равно было до пхп.

А, да. Меня минусы смутили ))