Ładny brzuch

var s, wynik: string; s := 'asdfg'; for i:=0 to lenght( s ) do begin   if s[i] <> 'f' then wynik:= wynik+ s[i]   else   break; end;

Po tej pentelce spodziewal bym sie ze wynik bedzie rowny ' asd' - ale oczywiscie tak nie jest . Ma ktos pomysl jak to poprawic ?
Uytkownik helios128 edytowa ten post 17 stycze 2006, 14:11


Przecie s jest zawsze rne od 'f' i o ile si niemyl to wynik wychodzi 'asdfg'. No tak jest przynajmniej w Pascalu, e nie da si porwnywa charu z caym stringiem w ten sposb. Dodaj sobie poprostu w warunku s[i] <> 'f' zamiast tego co jest i powinno by tak jak chcesz.

Moze dlatego, ze kopiujesz ze stringa litere o indeksie 0 (a to jest zabronione) :P
for i:=1 to lenght( s ) do

wynik:=''; for i:=1 to length(s) do  if s[i]<>'f' then wynik:=wynik+ s[i] else break;



sorki - za byka - teraz juz poprawilem mialo byc
for i:=0 to lenght(s) do
if s[i] <> 'f' then

i jako rezultat dostaje spacje zamiast asd - niech ktos to skompiluje i zobaczy

Przeciez Cyrkiel podal ci kompletny kod a ty dalej masz problem i jeszcze znowu napisales z bledem czyli i:=0


sorki - za byka - teraz juz poprawilem mialo byc
for i:=0 to lenght(s) do
if s[i] <> 'f' then

i jako rezultat dostaje spacje zamiast asd - niech ktos to skompiluje i zobaczy

s[0] zawiera dugo tylko dla ShortString (czyli stringa o dugoci do 255 znakw) :)


s[0] zawiera dugo tylko dla ShortString (czyli stringa o dugoci do 255 znakw) :)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •