Kako deklarirat dolžino Stringa

Vse o programiranju na in za PC

Moderatorji: Kroko, tilz0R

Kako deklarirat dolžino Stringa

OdgovorNapisal/-a RudiP » 13 Dec 2022, 13:41

Ali lahko v C++ deklariramo dolžino Stringa ? Uporabljeni string ni tipa char.

LpR
RudiP
 
Prispevkov: 485
Pridružen: 18 Jan 2015, 20:48
Zahvalil se je: 288 krat
Prejel zahvalo: 97 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 100

Re: Kako deklarirat dolžino Stringa

OdgovorNapisal/-a VolkD » 13 Dec 2022, 14:00

Nekje sem prebral nekaj v tem stilu:

Bistvena razlika med array-em in stringom je, da je array podatkovna struktura, ki vsebuje zbirko elementov z enakimi vrstami podatkov, medtem ko je niz zbirka charakterjev.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 67631
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 20699 krat
Prejel zahvalo: 10573 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Kako deklarirat dolžino Stringa

OdgovorNapisal/-a sundancer » 13 Dec 2022, 16:16

Kako je pa definiran tvoj String?

Če gre za String() v okviru arduino frameworka potem si poglej tole: https://www.arduino.cc/reference/en/lan ... ingobject/
Tu so namreč spremenljivke tipa String objekti, ki imajo funkcije.
Dolžine tega Stringa ne moreš deklarirati, lahko pa Stringu dodaš nov String ali pa poizveš njegovo dolžino:

Koda: Izberi vse
String ena = "srecno novo leto";
String dve = "2023";
String presledek = " ";
String tri = String(ena + presledek + dve);
unsigned int dolzina = tri.length();


Glej primere:
https://docs.arduino.cc/built-in-examples/#strings
Uporabniški avatar
sundancer
 
Prispevkov: 977
Pridružen: 16 Jan 2015, 22:36
Kraj: Ljubljana
Zahvalil se je: 437 krat
Prejel zahvalo: 533 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 63

Re: Kako deklarirat dolžino Stringa

OdgovorNapisal/-a Kroko » 13 Dec 2022, 16:28

V C-ju nič od stringov ne obstajaja.
V C++ "String" ne obstaja, obstaja pa std::string v C++ standard library-
V Arduino knjižnicah najdemo tudi "String" razred.

Če želiš odgovor boš moral bolje postaviti vprašanje.
http://www.planet-cnc.com Kroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 6113
Pridružen: 14 Jan 2015, 11:12
Kraj: Ljubljana
Zahvalil se je: 770 krat
Prejel zahvalo: 2419 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Kako deklarirat dolžino Stringa

OdgovorNapisal/-a RudiP » 13 Dec 2022, 18:30

Uporabljam String. Pri parsanju NMEA stringa se pri printanju ni izpisovala cela dolžina prejetega stringa. Mislil sem, da je napaka v dolžini stringa. Ko sem malo preučil zadevo sem ugotovil da funcija Serial.println(s); ne izpisuje celotnega stringa.

Primerjal sem string iz Gps-ja in string kateri je prišel iz procesorja. Pomagal sem si tudi z izpisom dolžine stringa.

Glej priponko !

Hvala vsem za pomoč.

LpR
Nimate dovoljenj za ogled prilog tega prispevka.
RudiP
 
Prispevkov: 485
Pridružen: 18 Jan 2015, 20:48
Zahvalil se je: 288 krat
Prejel zahvalo: 97 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 100

Re: Kako deklarirat dolžino Stringa

OdgovorNapisal/-a booxco » 13 Dec 2022, 19:32

Takole na hitro je najbrž problem premajhen receive buffer pri readSerial(), razišči v tej smeri. Sam String ni problem.
booxco
 
Prispevkov: 227
Pridružen: 25 Sep 2016, 21:17
Kraj: Lj okolica
Zahvalil se je: 43 krat
Prejel zahvalo: 95 krat
Uporabnika povabil: radix
Število neizkoriščenih povabil: 19

Re: Kako deklarirat dolžino Stringa

OdgovorNapisal/-a RudiP » 13 Dec 2022, 19:57

receive buffer pri readSerial() je vredu saj je izračunana dolžina stringa pravilna. Sporna je dolžina natisnjenega stringa.

LpR
RudiP
 
Prispevkov: 485
Pridružen: 18 Jan 2015, 20:48
Zahvalil se je: 288 krat
Prejel zahvalo: 97 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 100

Re: Kako deklarirat dolžino Stringa

OdgovorNapisal/-a booxco » 13 Dec 2022, 21:39

Aha, nisem štel znakov. Koliko znakov pa je izgubljeno? Če izpisuješ podstringe, lahko prideš do izgubljenega dela?
booxco
 
Prispevkov: 227
Pridružen: 25 Sep 2016, 21:17
Kraj: Lj okolica
Zahvalil se je: 43 krat
Prejel zahvalo: 95 krat
Uporabnika povabil: radix
Število neizkoriščenih povabil: 19


Vrni se na Programski jeziki

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost