Stránka 1 z 1

proměnné do string

Napsal: 13 zář 2023, 09:48
od Ludek
Zdravím, nějak jsem se zacyklil a nemohu na to přijít.
Prosím, jak dát 4 proměnné byte anebo int do stringu?
přiklad a=5; b=11; c=22; d=33;
a string aby byl myString = "5112233"
díky za radu

Re: proměnné do string

Napsal: 13 zář 2023, 10:05
od ondraN

Kód: Vybrat vše

myString = String(a)+String(b)+String(c)+String(d);
A pokud tam už něco máš a chceš ty proměné přidat tak

Kód: Vybrat vše

myString = myString+String(a)+String(b)+String(c)+String(d);

Re: proměnné do string

Napsal: 13 zář 2023, 10:18
od Ludek
Ondro díky !!!!
toto forum je super...

Re: proměnné do string

Napsal: 13 zář 2023, 10:21
od gilhad
a v praxi by to chtělo nějak oddělit, aby se poznalo, jestli a=5, b=11, nebo a=51 b=1 (a taky se vše posune pro a>9, nebo b<10 ...).

Jinak já používám snprintf případně to spočtu rovnou, ale já tím většinou vycpávám předvyplněné řetězce

Kód: Vybrat vše

void decTo2char(uint8_t val, char *c) {		// Convert normal decimal number 00..99 to two char
	c[0]= '0'+val/10;
	c[1]= '0'+val%10;
}
void bcdTo2char(uint8_t val, char *c) {		// Convert binary coded decimal number 00..99 to two char
	c[0]= '0'+((val>>4)&0x0F);
	c[1]= '0'+(val&0x0F);
}	
...
	// request seven bytes of data from DS3231 starting from register 00h
	tmp = Wire.read();
	bcdTo2char(tmp,&textTime[6]);
	second = bcdToDec(tmp);
	tmp = Wire.read();
	bcdTo2char(tmp,&textTime[3]);
	minute = bcdToDec(tmp);
	tmp = Wire.read();
	bcdTo2char(tmp,&textTime[0]);
	hour = bcdToDec(tmp);		// 40+ hours = 12 hour time = something is bad anyway

Kód: Vybrat vše

	static char buf[4];
	snprintf(buf,4,"%d",i);

Re: proměnné do string

Napsal: 13 zář 2023, 17:47
od Ludek
Jo pravda... taky zkusím.