Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Строки

Автор: Вася 28.05.2007 1:45

Как можно посчитать кол-во строчных и прописных русских букв в строке?
У меня есть один способ считать строчные, а есть ли ещё?

Код

for i:= 1 to length(s) do
       if (ord(s[i]) in [160..175]) or (ord(s[i]) in [224..239])   then
            rus:= rus + 1;

Автор: Гость 28.05.2007 14:28

Цитата(Вася @ 27.05.2007 21:45) *

У меня есть один способ считать строчные, а есть ли ещё?

Можно, например, не переводить в номера, прямо по символам:
Код
for i:= 1 to length(s) do
       if (s[i] in [#160..#175]) or (s[i] in [#224..#239])   then
            rus:= rus + 1;

Или можно сравнениями:
Код
for i:= 1 to length(s) do
       if (159<Ord(s[i])and(Ord(s[i]<176) or (223<s[i])and(Ord(s[i])<239) then
            rus:= rus + 1;


Автор: volvo 28.05.2007 14:36

var alpha: string;
...
alpha := 'абвгде ... юяАБВГ ... ЮЯ';
...
for i := 1 to length(s) do
if pos(s[i], alpha) > 0 then rus := rus + 1;
...

Автор: Гость 28.05.2007 14:55

и для полноты картины, вот так:

var
stro:set of char;
...
stro:=[#160..#175]+[#224..#239];
for i:=1 to Length(s) do if s[i] in stro then Inc(Rus);

smile.gif

Я это..