konrad_gordon Napisano Grudzień 27, 2007 Zgłoś Share Napisano Grudzień 27, 2007 Witam. Wiem że jestem tu nowy, ale liczę że mi pomożecie. Mam mianowicie taki problem. mam zmienna typu string składającą się z 3 wyrazów oddzielonych od siebie dowolną liczba spacji np.: "abc de f". Zadanie polega na skopiowaniu TYLKO wyrazu środkowego. To jest tylko część zadania które mam zrobić ale ona właśnie mi sprawia problem bo nie wiem jak skopiować ten środkowy wyraz. Dzięki za pomoc. Link do komentarza Udostępnij na innych stronach More sharing options...
TSr Napisano Grudzień 27, 2007 Zgłoś Share Napisano Grudzień 27, 2007 Zrób sobie pętle typu for i odczytuj po kolei znaki. Kiedy natrafisz na znak spacji, a po nim na inny znak to zacznij kopiować znaki w innego stringa i tak aż do momentu napotkania kolejnej spacji. Mniej-więcej coś takiego: for i := 0 to Length (str) - 1 do begin if str[i] = ' ' then ... end; Ubuntu.pl user #10593 Link do komentarza Udostępnij na innych stronach More sharing options...
konrad_gordon Napisano Grudzień 27, 2007 Autor Zgłoś Share Napisano Grudzień 27, 2007 no dobra ale jak mam coś dopisywać do innej zmiennej typu string? Link do komentarza Udostępnij na innych stronach More sharing options...
Nvm Napisano Grudzień 27, 2007 Zgłoś Share Napisano Grudzień 27, 2007 Podstawy var s : string --- s := s + tekst; Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Grudzień 27, 2007 Zgłoś Share Napisano Grudzień 27, 2007 petla ofcourse od 1 do Length (Delphi) nie od 0 chyba ze w pascalu bylo od zera nie pamietam juz.... Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Blind Napisano Grudzień 27, 2007 Zgłoś Share Napisano Grudzień 27, 2007 w Pascalu tez bylo od 1, w s[0] byla podana dlugosc napisu. www.blinder.pl - Blog Link do komentarza Udostępnij na innych stronach More sharing options...
sazian Napisano Grudzień 27, 2007 Zgłoś Share Napisano Grudzień 27, 2007 ja bym to zrobił raczej na pętli while 1 szukasz spacji i zapisujesz pozycje do zmiennej 2 w pętli sprawdzasz czy następna jest spacja jeśli tak to zmienna +1 jeśli inny znak to koniec pętli 3 kopiujesz te 3 wyrazy do zmiennej wynikowej 4 usuwasz tekst od początku do zmienne zawierającej pozycje spacji 5 szukasz następnej spacji i usuwasz wszystko od niej do końca 6 koniec Link do komentarza Udostępnij na innych stronach More sharing options...
konrad_gordon Napisano Grudzień 28, 2007 Autor Zgłoś Share Napisano Grudzień 28, 2007 ja to zrobiłem w końcu tak procedure operacje(var f1:text; var f2:text); var a,b:string; i,dl,ost,last,n:byte; begin assign(f1,'plikwe.txt'); assign(f2,'plikwy.txt'); reset(f1); rewrite(f2); ost:=0; last:=0; i:=1; n:=0; repeat readln(f1,a); dl:=length(a); while i<= dl do begin if n=0 then begin if a[i]=' ' then ost:=i else if ost<>0 then n:=1; end else begin if a[i]=' ' then begin last:=i; i:=dl+1; end; end; inc(i); end; b:=copy(a,ost+1,last-(ost+1)); writeln(f2,b); until eof(f1); close(f1);close(f2); end; ale teraz mam problem z policzeniem liczby wyrazów w stringu w którym wyrazy są oddzielone od siebie dowolną liczba spacji, a i liczba wyrazów w linii jest dowolna bo ten progm to ogólnie miał pracować na plikach ale nie wiedziałem jak znaleźć ten środkowy wyraz. a teraz mam kolejny problem. Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Grudzień 28, 2007 Zgłoś Share Napisano Grudzień 28, 2007 skoro są tylko znaki i spacje to rób tak: idziesz pętlą for po znakach od drugiego i patrzysz: jeśli s = spacja a s[i-1] nie jest spacją to zwiększ licznik. Potem tylko sprawdzasz czy ostatni znak jest różny od spacji to zwiększasz licznik o 1 Edit: Poświęcę się: function Zliczaj(const s : string):integer; var i,licznik : integer; begin Licznik := 0; for i:=2 To Length(s) Do if (s[i] = ' ') and (s[i-1] <> ' ') then Inc(licznik); if (Length(s) > 0) and (s[Length(s)] <> ' ') then Inc(Licznik); Zliczaj := Licznik; end; Pierwszy program gratis Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
konrad_gordon Napisano Grudzień 28, 2007 Autor Zgłoś Share Napisano Grudzień 28, 2007 dzięki za program gratis ale samo wytłumaczenie sprawy by mi wystarczyło. Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.