Помощь - Поиск - Пользователи - Календарь
Полная версия: строковый тип данных
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
BorisON
мучаюсь над задачей
вывести в алфавитном порядке все строчные русские буквы, входящие во введённую с клавы строку
вот такой листинг нерабочей проги
program stroki_2;

{$APPTYPE CONSOLE}
uses
SysUtils;
var
s: string;
i: integer;
q: set of char;
begin
q:=['а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я'];
writeln ('vvedite ctroku');
readln (s);
for i:=1 to length (s) do
begin
if s[i] in q then
write (s[i]);
end;
readln;
end.

смог только вывести русские буквы (докучи выводятся не все)
прошу помощи обественности yes2.gif
volvo
...
my_set := [];
for i := 1 to length(s) do
if s[i] in ['а' .. 'п', 'р' .. 'я'] then my_set := myset + [s[i]];

for i := 0 to 255 do
if chr(i) in my_set then write(chr(i));
...
BorisON
спасибо....уже теплее, но всё равно выводит русские буквы только начиная с "П"
мисс_граффити
как вариант - без множеств:
program stroki;
var s:string;
i: char;
begin
readln(s);
for i:='а' to 'п' do
if pos(i,s)<>0 then
write(i);
for i:='р' to 'я' do
if pos(i,s)<>0 then
write(i);
writeln;
readln;
end.

volvo
Цитата
но всё равно выводит русские буквы только начиная с "П"
С какого счастья? Все нормально выводит (ты покажи, как используешь то, что я привел, а то можно так написать, что вообще ничего выводить не будет...) Я надеюсь, все буквы в описании множеств - кириллицей напечатал?
klem4
BorisON, а точно нужно такие решение, как привели volvo и мисс_граффити ?

Может имелось в виду такое: слово "мама", результат "аамм" ?

ps меня просто смутило слово "все" малоли что по этим имелось в виду ... хотя скорее всего решения приведенные выше - это имеено то что тебе нужно.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.