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

Написать функцию

Написать функцию, которая в строке, переданной в качестве аргумента, изменяет на противоположный регистры всех символов (символов (например, для строки "Lower OR Upper" должны получить "lOWER or uPPER").
Pascal, Delphi,.. любой паскаль, только латинские буквы:

program N71608241;

function ChangeCase(s:string):string;
var i:integer;
Result:string; {в Delphi эта строка необязательна}
begin
Result := '';
for i := 1 to length(s) do
if s[ i ] in ['A' .. 'Z', 'a' .. 'z'] then
Result := Result + chr(ord(s[ i ]) xor $20)
else
Result := Result + s[ i ];
ChangeCase := Result
end;

var s:string;

begin
writeln('Введите строку: ');
readln(s);
writeln(ChangeCase(s));
readln
end.
КЛ
Константин Лощев
51 590
Лучший ответ
Смотря на каком языке. На Delphi это делается легко, путём перебора строкового массива по буквам.
Function zfCaseBL(St As String) As String
Dim i As Long, St1 As String * 1
For i = 1 To Len(St)
St1 = Mid(St, i, 1)
If St1 = LCase(St1) Then St1 = UCase(St1) Else St1 = LCase(St1)
zfCaseBL = zfCaseBL & St1
Next i
End Function
string InvertCase(string s)
{
return new string(
s.Select(p => char.IsLetter(p) ? (char.IsUpper(p) ? char.ToLower(p) : char.ToUpper(p)) : p).ToArray()
);
}
Vlad Anisimov
Vlad Anisimov
1 769
var
s: string;

function otr(s: string): string;
var
i, j: integer;
begin
for i := 1 to length(s) do
begin
if upcase(s[ i ]) <> s[ i ] then s[ i ] := upcase(s[ i ]) else
for j := ord(s[ i ]) to 255 do if upcase(chr(j)) = s[ i ] then s[ i ] := chr(j);
end;
otr := s
end;

begin
writeln('Введите строку: ');
readln(s);
writeln(otr(s));
end.
Проще взять и застрелиться!
Qurbon Imomov
Qurbon Imomov
494
какой язык?