需要在德尔福将大写字符更改为小字符

  • 本文关键字:字符 德尔福 delphi delphi-7
  • 更新时间 :
  • 英文 :


我有这个字符串,我需要将一些字符大写,所以我使用该UpCase命令...但是,如果我需要用大写字母制作小角色怎么办?在这种情况下,我应该使用什么?

UpCase不是区域设置感知的,只处理英语的 26 个字母。如果这真的是你所需要的,那么你可以创建等效的LoCase函数,如下所示:

function LoCase(ch: AnsiChar): AnsiChar; overload;
begin
  case ch of
  'A'..'Z':
    Result := AnsiChar(Ord(ch) + Ord('a')-Ord('A'));
  else
    Result := ch;
  end;
end;
function LoCase(ch: WideChar): WideChar; overload;
begin
  case ch of
  'A'..'Z':
    Result := WideChar(Ord(ch) + Ord('a')-Ord('A'));
  else
    Result := ch;
  end;
end;
你应该

学习如何自己找到解决方案,而不是如何使用Google或stackoverflow:)

您在 System.pas 中拥有 UpCase 函数的源代码。看看它是如何工作的。所做的只是从小写字符中减去 32。如果你想要相反的,加 32 而不是减去它。德尔福的帮助会告诉你DecInc做什么。

var
  S: string;
  I: Integer;
begin
  S := 'ABCd';
  for I := 1 to Length(S) do
    if S[I] in ['A'..'Z'] then  // if you know that input is upper case, you could skip this line
      Inc(S[I], 32); // this line converts to lower case
end;

最新更新