Чем заменить String ?

Adolf_Balalaykin
Offline
Зарегистрирован: 01.02.2021

Чем заменить стринги? :) Трусы не предлагать ))))

 String name()
 {
 float IN10 = тут_значение();  // соддадим переменную IN10
return String(IN10);
 }

void setup() {

 server.on("/timeLeft", HTTP_GET, [](AsyncWebServerRequest *request)
             { request->send_P(200, "text/plain", name().c_str()); }); 
}

 

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

char*

Artist666
Offline
Зарегистрирован: 26.02.2022
String name()
 {
    float IN10 = тут_значение();  // соддадим переменную IN10
    return String(IN10);
 }

Как функция может вернуть себя же, при этом не объявлено, что она имеет параметры.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Artist666 пишет:

String name()
 {
    float IN10 = тут_значение();  // соддадим переменную IN10
    return String(IN10);
 }

Как функция может вернуть себя же, при этом не объявлено, что она имеет параметры.

Вы идиот? Что за бред написали - сами понимаете?)

Artist666
Offline
Зарегистрирован: 26.02.2022

Не туда посмотрел.
Тем не менее, можно было без оскорблений.

b707
Offline
Зарегистрирован: 26.05.2017

Artist666 пишет:

можно было без оскорблений.


можно и без, но замечено, что с оскорблениями быстрее доходит.
Ну так что, поняли, что в заглавном и втором сообщении бред написан? Что такое тут_значение()? Скобки на конце что значат? Это процедура?:)

Artist666
Offline
Зарегистрирован: 26.02.2022

Я не особо шарю в С, скобки - значит функция.

Под функцией я имею ввиду:
Процедура — это независимая именованная часть программы, которую после однократного описания можно многократно вызвать по имени из последующих частей программы для выполнения определенных действий.

А на счёт моего бреда, то я не увидел name.
Т.е. прочитал как: String ()

Всех функций в С я не знаю.

Artist666
Offline
Зарегистрирован: 26.02.2022

Что-то типа того:

#include "Ultrasonic.h"
 
String name()
{
float IN10 = 1.5;  // создадим переменную IN10
 
char StrNum[10];  // Строковый массив
dtostrf(IN10, 10, 3, StrNum); // Перевести число в строку
 
return StrNum;
}
DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Artist666 пишет:

Что-то типа того:

#include "Ultrasonic.h"
 
String name()
{
float IN10 = 1.5;  // создадим переменную IN10
 
char StrNum[10];  // Строковый массив
dtostrf(IN10, 10, 3, StrNum); // Перевести число в строку
 
return StrNum;
}

точно идиот. 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Artist666 пишет:

Я не особо шарю в С

Не лезь тогда с идиотскими советами

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

DetSimen пишет:

Artist666 пишет:

Я не особо шарю в С

Не лезь тогда с идиотскими советами

Да ещё нарушая правила форума.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Artist666 пишет:

Всех функций в С я не знаю.

А их никто не знает.

Artist666
Offline
Зарегистрирован: 26.02.2022

Куда мне до тебя, светила.

b707
Offline
Зарегистрирован: 26.05.2017

Artist666 пишет:

Что-то типа того:

#include "Ultrasonic.h"
 
String name()
{
float IN10 = 1.5;  // создадим переменную IN10
 
char StrNum[10];  // Строковый массив
dtostrf(IN10, 10, 3, StrNum); // Перевести число в строку
 
return StrNum;
}

две грубые ошибки.

Во-первых, массив StrNum[10] - это локальная переменная функции name(), после выхода из функции эта переменная не существует, возвращать на нее ссылку - это неверное обращение к памятью.

Во вторых, функция обьявлена с возвращаемым значением типа  String, а возвращаете вы из нее char*

Artist666
Offline
Зарегистрирован: 26.02.2022

Чем дальше, тем хуже. ))
Лучше сделать вид - типа проехали.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Artist666 пишет:
Чем дальше, тем хуже. )) Лучше сделать вид - типа проехали.

Хорошенько прочти #9.

Artist666
Offline
Зарегистрирован: 26.02.2022

Ну так?
 

float name()
{
	float IN10 = тут_значение();  // соддадим переменную IN10

	return IN10;
}

void setup()
{
	server.on("/timeLeft", HTTP_GET, [](AsyncWebServerRequest *request)
    { request->send_P(200, "text/plain", String(name())); }); 
}

 

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Если ты школьник лет 8-12, то как бы еще можно "сквозь пальцы" пустить этот бред (и тот факт, что не слушаешь что тебе говорят).

А вот если по взрослее, то сходи провериться: "Что у тебя там с "кукухой" на самом деле?"...

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Artist666, не нужно пытаться писать на Си, у Вас это все равно не получается.

Напишите лучше по-русски - чего Вы хотите.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

andriano пишет:

Artist666, не нужно пытаться писать на Си, у Вас это все равно не получается.

Напишите лучше по-русски - чего Вы хотите.

Дык он жешь не автор темы, влез и хз для чего. Наврятли, что он что-то хочет. Скорее «показать своё «я»».

И ведь продолжает после #15, ну тут реально или детё или ...

Artist666
Offline
Зарегистрирован: 26.02.2022

Своя "я" как раз ты пытаешься показать. Во первых я могу писать в теме не спрашивая разрешения у таких как ты. Во вторых первый мой пост был по поводу кода. Я года 4 уже не занимался программированием, и уже забыл многое. А именно я не обратил внимания, что функция(класс) String - уже могла быть определена библиотекой. Далее я прочитал String name() как String (). Вот и всё. На что был определён как идиот. Ну да, как Вам угодно. В третьих, я возможно не так понял ТС, что он имел ввиду про замену. Я подумал он не может строку передать, потому, что класс String не работает с дробными числами. После этого я что-то выдавил. Меня обосрали. Потом я подумал что видимо дело не в том, что String не работает с дробными числами, а в том, что строку функция не может вернуть. Я помню что-то там с указателями можно... В общем мне абсолютно плевать, можете ещё поржать, как адекватные взрослые люди.

И да, на счёт кода не в тегах, я бы их поставил, если бы они нормально работали, а не выводили текс в HTML при правке.

b707
Offline
Зарегистрирован: 26.05.2017

Artist666 пишет:

Ну так?
 

float name()
{
	float IN10 = тут_значение();  // соддадим переменную IN10

	return IN10;
}

void setup()
{
	server.on("/timeLeft", HTTP_GET, [](AsyncWebServerRequest *request)
    { request->send_P(200, "text/plain", String(name())); }); 
}

 

Artist666, так что же все-тки означает строчка

float IN10 = тут_значение(); 

Хорошо, пусть вы не знаете всех функций С. но наверно должны догадываться, что среди этих функций нет таких. что назывались бы кириллицей...

И второй вопрос - нафига вообще нужна эта функция name() и вызов ее в инициализаторе String - String(name()?

Что мешает инициализировать строку сразу нужным значением?

String(IN10)

 

Artist666
Offline
Зарегистрирован: 26.02.2022

Эта строка означает, что ТС не хотел вдаваться в подробности кода, который не имеет отношения к теме. Я так тоже делал, когда-то, мне лень было упрощать код, и я просто писал, что например переменная в итоге принимает какое-то число, к чему там скобки - загадка. Я согласен, если нет какой-то обработки данных, например переменная получает число из функции или глобальной переменной, то и не нужно было городить эту функцию. Я воспринял это как то, что ТС максимально сократил код.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Artist666 пишет:

Эта строка означает, что ТС не хотел вдаваться в подробности кода, который не имеет отношения к теме. Я так тоже делал, когда-то, мне лень было упрощать код, и я просто писал, что например переменная в итоге принимает какое-то число, к чему там скобки - загадка.

ТС не вдавался в подробности = тупой (так ТЫ его назвал). Да и ты с «гонором» и не далеко ушёл  ))) Может и приживешься (но готовься к сильным унижениям), если книжки почитаешь и будешь писать осмысленно комментарии - мошт и примут. Я не против) Но пока, на мой взгляд, рановато... )

В итоге по string -  результирующая функция server.on принимает указатель char*, нафига ей эта тягомотина с тяжёлым стринг, если можно без неё? Панимашшш?! (Наврятли)

ЗЫ: ТС давно слился, как обычно )))

Artist666
Offline
Зарегистрирован: 26.02.2022

BOOM пишет:
ТС не вдавался в подробности = тупой (так ТЫ его назвал).

Можно цитату? А то я что-то никак не могу найти, где же это я ТСа тупым назвал.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Ты глаза то разуй...