|
Вопрос # 153/ вопрос решён / |
|
Здравствуйте. В данный момент учусь на программиста, изучаю Delphi, задали мне кааую-то глупую задачу, которую я решил в пару минут, а над самым простым вопросом маюсь и маюсь, вы то уж точно знаете на него ответ, вопрос звучит так:"Среди функций для работы с символами найдите функцию, которая все строчные и прописные буквы латинского алфавита приводит к одному формату". С уважением, Сергей Анатольевич.
 |
Вопрос задал: Полушин Сергей Анатольевич (статус: Посетитель)
Вопрос отправлен: 9 ноября 2006, 17:46
Состояние вопроса: решён, ответов: 2.
|
Ответ #1. Отвечает эксперт: bruder
Здравствуйте, Полушин Сергей Анатольевич!
Функции UpperCase(Str: String) и LowerCase(Str: String) преобразуют строку соответственно в верхний и нижний регистры.
Приложение: Переключить в обычный режим- var Str1, Str2, Str3: String;
- { ... }
- Str1:='hELLo';
- Str2:=UpperCase(Str1); { Str2 = "HELLO" }
- Str3:=LowerCase(Str1); { Str3 = "hello" }
 |
Ответ отправил: bruder (статус: 4-ый класс)
Время отправки: 9 ноября 2006, 17:58
Оценка за ответ: 5
Комментарий к оценке: Коротко и ясно. Спасибо.
|
Ответ #2. Отвечает эксперт: Alex Van Glukhman
Здравствуйте, Полушин Сергей Анатольевич!
Для работы со строками включающими символы национальной кодировки в том числе и WideString существуют функции:
AnsiUpperCase() - для преобразования символов в верхний регистр и
AnsiLowerCase() - соответственно в нижний.
С русским языком работает великолепно.
Функции описаны в модуле SysUtils.
Удачи!!!
 |
Ответ отправил: Alex Van Glukhman (статус: 7-ой класс)
Время отправки: 10 ноября 2006, 07:45
Оценка за ответ: 5
Комментарий к оценке: Спасибо большое. Действительно, мне даже стыдно за глупый вопрос.
|
Мини-форум вопроса
Всего сообщений: 5; последнее сообщение — 10 ноября 2006, 13:15; участников в обсуждении: 3.
|
Dron (статус: Студент), 9 ноября 2006, 18:14 [#1]:
Да, это стандартные функции, но они работают лишь с латинским алфавитом. Судя по постановке задачи, именно их и требуется найти. Однако для практической реализации данной задачи (приведение символов к одному регистру) с русским языком, нужно написать свою собственную функцию.
С уважением.
|
|
bruder (статус: 4-ый класс), 9 ноября 2006, 18:21 [#2]:
Есть и для русского:
function UpCase(ch: char): char;
begin
if (ch in ['a'..'z', 'а'..'я']) then
result := chr(ord(ch) - 32)
else
result := ch;
end;
function LoCase(ch: char): char;
begin
if (ch in ['A'..'Z', 'А'..'Я']) then
result := chr(ord(ch) + 32)
else
result := ch;
end;
function UpperCase(s: string): string;
var
i: integer;
begin
result := s;
for i := 1 to length(result) do
if (result[i] in ['a'..'z', 'а'..'я']) then
result[i] := chr(ord(result[i]) - 32);
end;
function LowerCase(s: string): string;
var
i: integer;
begin
result := s;
for i := 1 to length(result) do
if (result[i] in ['A'..'Z', 'А'..'Я']) then
result[i] := chr(ord(result[i]) + 32);
end;
|
|
Dron (статус: Студент), 9 ноября 2006, 19:25 [#3]:
Это разные варианты что ли? Они почти одинаковые...
С уважением.
|
|
Alex Van Glukhman (статус: 7-ой класс), 10 ноября 2006, 07:48 [#4]:
К чему колесо изобретать?
AnsiUpperCase, AnsiLowerCase
|
|
Dron (статус: Студент), 10 ноября 2006, 13:15 [#5]:
Да, действительно, про них я забыл... Хорошие функции.
С уважением.
|
31 января 2011, 19:24: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|