Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 153

/ вопрос решён /

Здравствуйте. В данный момент учусь на программиста, изучаю Delphi, задали мне кааую-то глупую задачу, которую я решил в пару минут, а над самым простым вопросом маюсь и маюсь, вы то уж точно знаете на него ответ, вопрос звучит так:"Среди функций для работы с символами найдите функцию, которая все строчные и прописные буквы латинского алфавита приводит к одному формату". С уважением, Сергей Анатольевич.

Полушин Сергей Анатольевич Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: Полушин Сергей Анатольевич (статус: Посетитель)
Вопрос отправлен: 9 ноября 2006, 17:46
Состояние вопроса: решён, ответов: 2.

Ответ #1. Отвечает эксперт: bruder

Здравствуйте, Полушин Сергей Анатольевич!
Функции UpperCase(Str: String) и LowerCase(Str: String) преобразуют строку соответственно в верхний и нижний регистры.

Приложение:
  1. var Str1, Str2, Str3: String;
  2. { ... }
  3. Str1:='hELLo';
  4. Str2:=UpperCase(Str1); { Str2 = "HELLO" }
  5. 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

Dron (статус: Студент), 9 ноября 2006, 18:14 [#1]:

Да, это стандартные функции, но они работают лишь с латинским алфавитом. Судя по постановке задачи, именно их и требуется найти. Однако для практической реализации данной задачи (приведение символов к одному регистру) с русским языком, нужно написать свою собственную функцию.
С уважением.
bruder

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

Dron (статус: Студент), 9 ноября 2006, 19:25 [#3]:

Это разные варианты что ли? Они почти одинаковые...
С уважением.
Alex Van Glukhman

Alex Van Glukhman (статус: 7-ой класс), 10 ноября 2006, 07:48 [#4]:

К чему колесо изобретать?
AnsiUpperCase, AnsiLowerCase
Dron

Dron (статус: Студент), 10 ноября 2006, 13:15 [#5]:

Да, действительно, про них я забыл... :-) Хорошие функции.
С уважением.

31 января 2011, 19:24: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 19 октября 2017, 14:08
Выполнено за 0.1 сек.
Рейтинг@Mail.ru