Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2013, 16:43   #11
dima1257
Пользователь
 
Аватар для dima1257
 
Регистрация: 16.11.2012
Сообщений: 66
По умолчанию

Всё увидел. Спасибо.

26 потому что 26 букв в алфавите. это без разницы т.к. 26 = Length(lower) = Length(Upper)

а в цикле каждый символ исходной строки сравнивается с каждой буквой алфавита в нижнем регистре и если произошло совпадение, то мы заменяем символ исходной строки на букву в верхнем регистре с соответствующим номером из набора букв в верхнем регистре.
Выдержка из правил форума: Не стоит отправлять в поиск, не хотите отвечать пройдите мимо. Хотите помочь, пишите конкретный ответ.

Последний раз редактировалось dima1257; 04.12.2013 в 16:48.
dima1257 вне форума Ответить с цитированием
Старый 04.12.2013, 16:53   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от dima1257 Посмотреть сообщение
Всё увидел. Спасибо.

26 потому что 26 букв в алфавите. это без разницы т.к. 26 = Length(lower) = Length(Upper)

а в цикле каждый символ исходной строки сравнивается с каждой буквой алфавита в нижнем регистре и если произошло совпадение, то мы заменяем символ исходной строки на букву в верхнем регистре с соответствующим номером из набора букв в верхнем регистре.
Молодца. Всё абсолютно точно!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.12.2013, 18:04   #13
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Код:
function uCase(S :string):string;
const
  lStr = 'abcdefghijklmnopqrstuvwxyz';
  uStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var
  I, N :Integer;
  Buf :string;
begin
 uCase := S;
 if Length(S) > 0 then
 begin
   Buf := '';
   for I := 1 to Length(S) do
   begin
     N := Pos(S[I], lStr);
     if N > 0  then
      Buf := Buf + uStr[N]
     else
      Buf := Buf + S[I];
   end;
   uCase := Buf;
 end;
end;
Alter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразовать все буквы нижнего регистра в буквы верхнего регистра druger Помощь студентам 5 18.09.2011 17:27
Перевод в верхний индекс первого символа Aleksandr Общие вопросы Delphi 10 12.09.2011 23:39
верхний регистр строки делфи BAMbarBIO Компоненты Delphi 9 21.06.2011 19:10
[C][unicode] Преобразование регистра строки int Помощь студентам 1 15.02.2010 08:46
Перевод имени в верхний регистр MalCer Общие вопросы Delphi 6 31.03.2009 13:14