Adott karaktert hogyan lehet egy stringben (AnsiString) a legátláthatóbb módon megszámolni Pascalban (Lazarusban)?
Ilyesmire gondolok, csak AnsiStringekkel:
Ez ShortStringekkel tiszta sor, sima megszámolás tétel, végiglépkedek a string elemein (ami shortstring lévén karaktertömb), és ahol egyezik a kívánt karakterrel, ott növelem a számláló értékét.
A probléma az, hogy AnsiStringként nem tudom elérni az egyes karaktereket közvetlenül...
Banyek.
Az ANSI stringnél nem az első bájt tárolja a hosszot.
A shortStringeknél az első bájton tárolódik a string hossza. Ezért is lehet csak 255 karakter hosszú, mert a nulladik bájt a hossz.
De ansistring esetében ez nem játszik. Ott használd ezt: length(ansistring)
Minden más ugyanaz, mint shortString esetén.
var
s: ansistring;
i, cnt: word;
ch: char;
begin
s:= 'hat darab vakablak marad csak';
ch := 'a';
cnt:= 0;
for i:= 1 to length(s) do if s[i]=ch then inc(cnt);
writeln(cnt);
end.
További kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!