Text33. Дан символ $$C$$ — строчная (маленькая) русская буква и текстовый файл. Создать строковый файл и записать в него все слова из исходного файла, содержащие хотя бы одну букву $$C$$ (прописную или строчную). Словом считать набор символов, не содержащий пробелов, знаков препинания и ограниченный пробелами, знаками препинания или началом/концом строки. Если исходный файл не содержит подходящих слов, то оставить результирующий файл пустым.
Решение:
Данное решение работает при командной строке и файле в кодировке OEM 866
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
program Text33; var F_in,F_out: Text; Name,S,Word: string; c,C2:Char; begin Write('File name in: '); Readln(Name); Assign(F_in,Name); Write('File name out: '); Readln(Name); Assign(F_out,Name); Write('C: '); Readln(c); if (ord(c) in [97..122,160..175]) then C2:=chr(ord(C)-32) else if (ord(c) in [224..239]) then C2:=chr(ord(C)-80); Reset(F_in); Rewrite(F_out); Word:=''; Writeln(F_out,c,C2); While not eof(F_in) do begin Readln(F_in,S); S:=S+' '; While (pos(' ',S)<>0) do begin Word:=Copy(S,1,pos(' ',S)); Delete(S,1,pos(' ',S)); if (pos(c,Word)>0) or (pos(C2,Word)>0) then Writeln(F_out,Word); end; end; Close(F_in); Close(F_out); end. |
Другие задачи из раздела Text можно посмотреть здесь.
Комментарии: