Kezdőoldal » Számítástechnika » Programozás » String elválasztása szavakra,...

String elválasztása szavakra, hogyan?

Figyelt kérdés
Azt szeretném, hogy egy olyan programom legyen, aminek ha beírok egy mondatot, akkor azt szavakra szedje szét és a szavakat egy tömbben legyenek. pascalban szeretném megcsinálni. tudnátok segíteni ebben?
2023. ápr. 22. 06:47
 1/5 anonim ***** válasza:
0%
Mért pascal?
2023. ápr. 22. 09:58
Hasznos számodra ez a válasz?
 2/5 anonim ***** válasza:
Nagyon régen pascaloztam, ezért csak tippeket tudok adni. Javában van olyan metódusa a Stringnek, ami ezt megcsinálja. Ha Pascalban nincs ilyen, akkor megkeresed az első szóközt, az előtte levő részt belerakod a tömbödbe és kitörlöd az eredeti stringből, majd folytatod a maradékkal.
2023. ápr. 22. 10:22
Hasznos számodra ez a válasz?
 3/5 anonim ***** válasza:
0%

Én sem értek a pascalhoz. Tapasztalatom szerint, csak gimis tanárok szeretik, akik lusták voltak haladni a korral, így még mindig ezt a sz-rt tanítják a diákoknak.


Viszont, hogy segítsek megkérdeztem a ChagtGPT-4-et. Tudom bárki megtudja kérdezni, de mivel a 4-es előfizetés kell és tényleg jobb válaszokat ad, így remélem segít ez a válasz:


A Pascal egyik egyszerű módja a szavakra bontásnak, hogy beolvassuk a beírt mondatot, majd végigiteráljuk a karaktereken, és kiszűrjük a szavakat. Itt van egy egyszerű példa egy Pascal programra, amely ezt megvalósítja:


program SzavakraBontas;

uses SysUtils;


var

inputStr: string;

words: array of string;

word: string;

i: integer;

begin

Write('Add meg a mondatot: ');

ReadLn(inputStr);


SetLength(words, 0);

word := '';


for i := 1 to Length(inputStr) do

begin

if inputStr[i] <> ' ' then

begin

word := word + inputStr[i];

end

else

begin

if word <> '' then

begin

SetLength(words, Length(words) + 1);

words[High(words)] := word;

word := '';

end;

end;

end;


if word <> '' then

begin

SetLength(words, Length(words) + 1);

words[High(words)] := word;

end;


WriteLn('A szavak száma: ', Length(words));

WriteLn('A szavak:');

for i := 0 to High(words) do

begin

WriteLn(words[i]);

end;


ReadLn;

end.


Ez a program először megkéri a felhasználót, hogy írja be a mondatot, majd végigiterál a karaktereken és a szavakat eltárolja a words dinamikus tömbben. A program végén kiírja a szavak számát és az egyes szavakat.

2023. ápr. 22. 10:27
Hasznos számodra ez a válasz?
 4/5 A kérdező kommentje:

köszi sikerült


var

   words  : array of string;

   WCount : byte;


Procedure Split(inputStr: string);

var i: byte;

begin

  for i := 1 to length(inputStr) do

   if (inputStr[i] <> ' ') then

   begin

    if (i = 1) or (inputStr[i-1] = ' ') then

    begin

     inc(Wcount);

     setlength(Words, WCount);

    end;

    Words[WCount-1] := Words[WCount-1] + inPutStr[i];

   end;

end;

2023. ápr. 22. 20:18
 5/5 anonim ***** válasza:
20%

var

   words : array of string;

   i : byte;


Procedure Split(inputStr: string);

begin

    setlength(words,1);

    for i := 1 to length(inputStr) do

      if (inputStr[i] <> ' ') then

      begin

        if (i = 1) or (inputStr[i-1] = ' ') then setlength(Words, length(Words)+1);

        Words[length(Words)-1] := Words[length(Words)-1] + inPutStr[i];

      end;

end;


begin

    split(' lakmus salamander 27694 #theo <= frett solar DEADBEEFh');

    for i := 1 to length(Words)-1 do writeln(i,' ',Words[i]);

end.



Oh shit!

2023. ápr. 23. 03:30
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!