Просмотр полной версии : Pascal найти слова в тексте
Ачатовцы, подскажите как на паскале в строке текста найти слова которые больше пяти символов, но меньше 8?
wildshaman
02.06.2010, 19:50
берешь переменную l под длину, сначала l=0
береме переменную s под слово, сначала s=''
Читать текст посимвольно, пока символ не пробел, прибавляя единицу к l, а символ к s
Когда достигли пробела, смотрим, если l>5 и l<8, выводим слово s
Если нет, не выводим
В любом случае l=0 ставим, s=''
И далее...
сунуть текст в стринглист, заменить внём все пробелы на перенос строк и далее:
list:=tstringlist.create;
for i:=0 to list.count-1 do
begin
if (length(list[i])>5) and (length(list[i])<8) the
showmessage('нашли слово: '+list[i] );
end;
Стринг лист в паскале?
ТС я ответил в теме про лабы.
Стринг лист в паскале?
ТС я ответил в теме про лабы.
увлёкся, сорри (:
ну смысл, думаю, понятен. можно и без стринглиста ведь
Решил немного выежнуться и решил так, строку разбил на слова в массив, а потом каждое сравнивал по длинне..
program zadanie3;
var
i,n,k:integer;
predl:string;
words,result:array[1..100] of string;
wfile:text;
filename:string;
begin
predl:='turbo pascal internet go interest programming number size on get post kelvin programming development';
n:=1;
k:=1;
for i:=1 to length(predl) do begin
if predl[k]<>' ' then begin
words[n]:=words[n]+predl[k];
inc(k);
end
else
begin
inc(n);
inc(k);
end;
end;
k:=1;
for i:=1 to n do begin
if (length(words[i])>5) and (length(words[i])<8) then begin
result[k]:=words[i];
inc(k);
end;
end;
filename:='res.txt';
Assign(wfile,filename);
Rewrite(wfile);
Writeln(wfile, 'ishodniy text:');
writeln(wfile, predl);
writeln(wfile, 'slova po usloviu:');
for i:=1 to k do
writeln(wfile, result[i]);
Close(wfile);
end.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot