Frozen83
25.11.2004 16:26
Люди...помогите...дали мне такое задания для типовика ...озвучиваю: Преобразовать заголовки к верхнему регистру, используя русский и латинский регистры.
Ума не приложу, как делать, а надо. Жду помощи.
Frozen83
А конкретнее? Это нужно в Паскале или в Дельфи? Что за заголовки?
Frozen83
25.11.2004 16:31
Нужно в Pascale. А насчет какие заголовки...ммм...не знаю...у меня на руках голое задания...
Frozen83
Латинские символы строки преобразуются в верхний регистр элементарно при помощи ф-ии UpCase(Ch) - то есть пробегаешь по всей строке и меняешь s[i] на UpCase(s[i])... А вот кириллица - будет всегда привязана к кодировке.
Frozen83
25.11.2004 16:49
Угу...тока вот я понять не могу никак...что это значит преобразовать к верхнему регистру? Какой будет результат после того как я поменяю s[i] на UpCase(s[i])... ?
Frozen83 Запусти эту программу:
Код
var s: string; i: byte;
begin
readln(s); { допустим, 'start' }
for i := 1 to length(s) do s[i] := upcase(s[i]);
writeln(s); {'start' поменяется на 'START'}
end.
Frozen83
25.11.2004 17:11
Пасибки :-)
Frozen83
25.11.2004 18:51
Все же , как сделать если русские буквы надо преобразовать к верхнему регистру. Так думаю можно массив создать русского алфавита. Не понимаю как нужно определять латинская буква на входе или русская. Мне бы прогу ...
Frozen83 А самому подумать? Никак?
Код
Function UpperString(s: String): String;
Var i: Byte;
Begin
For i := 1 To Length(s) Do
If s[i] In ['a'..'z'] Then s[i] := UpCase(s[i])
Else
If s[i] In ['а'..'п', 'р'..'я'] Then
Begin
{ Если пришли сюда, то буквы - русские. Добавляй свой код по переводу кириллицы в верхний регистр }
End;
UpperString := s;
End;
Вот процедура:
Код
Function UpStr(S:String):String; {перевод строки в верхний регистр}
Var I:Byte;
Begin
For I:=1 To ORD(S[0]) Do
Begin
Case S[I] Of
'a'..'z':S[I]:=Chr(Ord(S[I])-$20);
'а'..'п':S[I]:=Chr(Ord(S[I])-$20);
'р'..'я':S[I]:=Chr(Ord(S[I])-$50)
End
End;
UpStr:=S
End;
Предпочитаю пользовыаться всегда ей, она САМАЯ быстрая.
Взято из хакерской проги для взлома PWL виндовса, 10 лет назад! так что это раритет!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.