需要在 Delphi 中将大写字符更改为小写字符

Need to change capital character to a small one in Delphi

我有这个字符串,我需要将一些字符设为大写,所以我使用 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 或 Whosebug :)

您在 System.pas 中有 UpCase 函数的源代码。看看它是如何工作的。所有这一切都是从小写字符中减去 32。如果您想要相反的结果,请加 32 而不是减去它。 Delphi 帮助会告诉您 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;