Другие языки программирования и технологии

дана строка содержащая латинские буквы, русские буквы и цифры. Подсчитать количество русских букв и цифр в данной строке

Символов какого типа больше?
ВШ
Винер Ш
279
Код для Turbo Pascal :
const Lat = ['A'..'Z', 'a'..'z']; Rus = ['А'..'Я', 'а'..'п', 'р'..'я', 'Ё', 'ё']; Cif = ['0'..'9'];
var S : String; N, R, C, L : Byte;
begin
Write('Введите строку: '); ReadLn(S);
L := 0; R := 0; C := 0; for N := 1 to Length(S) do case S[N] of Lat : Inc(L); Rus : Inc(R); Cif : Inc(C); end;
WriteLn('Латинских букв: ', L);
WriteLn('Русских букв: ', R);
WriteLn('Цифр: ', C);
end.
Про "Символов какого типа больше? - не понятно что с чем сравнивать.
То-ли русские с цифрами, то-ли прочие символы с кол-вом русских и/или цифр.. .
Короче, если только для полученных значений, то перед последним end. нужно добавит:
if (L > R) and (L > C) then WriteLn('Латинских букв больше всех! ')
else if if (R > L) and (R > C) then WriteLn('Русских букв больше всех! ')
else WriteLn('Цифр больше всех! ')
ГК
Герман Ковалев
86 841
Лучший ответ
короче, можно задвать два массива - один для букв русского алфавита, другой - для латинских букв. Создаешь три счётчика.
Определяешь длину строки, делаешь цикл. Выделяешь каждый символ заданной строки и сравниваешь его с цифрами, с массивом русских букв и с массивом латинских. Если есть совпадение - к нужному счетчику прибавляешь 1. А потом сравниваешь эти три числа. Всё!
Задаешь множество, содержащее все английские буквы (большие и маленькие) и в цикле пробегаешь строку посимвольно. Каждый символ проверяешь на вхождение в множество, если не входит, увеличивай счетчик.
Ну, или так как выше написано, хотя там больше памяти используется.. . Да и по времени наверно медленнее немного будет
Марат Н
Марат Н
4 325
Посмотреть в таблице ascii с каких по какие номера идёт кириллица, и выполнять поиск в строке символов из соответствующего диапазона. То же самое и для цифр, и для латинских символов.
какой язык программирования?

Похожие вопросы