program CountCharactersProgram;
function IsUpper(ch: char): boolean;
begin
IsUpper := (ch >= 'A') and (ch <= 'Z');
end;
function IsLower(ch: char): boolean;
begin
IsLower := (ch >= 'a') and (ch <= 'z');
end;
function IsDigit(ch: char): boolean;
begin
IsDigit := (ch >= '0') and (ch <= '9');
end;
function IsSpecial(ch: char): boolean;
begin
IsSpecial := not (IsUpper(ch) or IsLower(ch) or IsDigit(ch));
end;
procedure CountChars(text: string;
var upper, lower, digits, special: integer);
var
i: integer;
ch: char;
begin
upper := 0;
lower := 0;
digits := 0;
special := 0;
for i := 1 to length(text) do
begin
ch := text[i];
if IsUpper(ch) then
inc(upper)
else if IsLower(ch) then
inc(lower)
else if IsDigit(ch) then
inc(digits)
else
inc(special);
end;
end;
var
s: string;
u, l, d, spc: integer;
begin
s := 'Programming&AI@2026!';
CountChars(s, u, l, d, spc);
writeln('Uppercase: ', u);
writeln('Lowercase: ', l);
writeln('Digits: ', d);
writeln('Special characters: ', spc);
readln;
end.
(*
run:
Uppercase: 3
Lowercase: 10
Digits: 4
Special characters: 3
*)