PASCAL:将用户输入字符串转换为首字母大写,其余为小写。我怎样才能做到这一点?

时间:2015-12-01 16:32:39

标签: pascal uppercase lowercase

正如标题中所述。

我正在编写一个程序,要求用户输入一个姓氏,然后输入名字,最后输入一个地址。

完成后,它打印出一张结果表,然后按字母顺序排列,首先是姓氏,然后是名字,最后是地址。

这一切都完成了。我只需要使表格始终打印出第一个字母为大写,其余为小写,即:

输入:jOHN SMith 输出:John Smith

我如何在Pascal中执行此操作?

以下是我为此部分编写的代码:

writeln();
write(UpCaseFirstChar(arrSurnames[count]):15);
write(UpCaseFirstChar(arrFirstNames[count]):15);
write(UpCaseFirstChar(arrAddress[count]):30);
writeln();

我有一个用于大写第一个字母的函数,如何将其更改为小写其余字母?

编辑:这是大写函数:

function UpCaseFirstChar(const S: string): string;
begin
 Result := S;

 if Length(Result) > 0 then
 Result[1] := UpCase(Result[1]);
end; 
编辑2:我想我弄明白了。以下是UpCase / LowerCase函数的新代码,以防任何人感兴趣:

function UpCaseFirstChar(const S: string): string;
var
   i: integer;
begin
   Result := S;

   if Length(Result) > 0 then
   Result[1] := UpCase(Result[1]);
   for i := 2 to Length(Result) do
      begin
         Result[i] := LowerCase(Result[i]);
      end;
end; 

1 个答案:

答案 0 :(得分:3)

您的更新比它需要的更详细。如果您仔细阅读文档,则函数LowerCase将应用于字符串。所以你可以写:

function UpCaseFirstChar(const S: string): string;
begin
  if Length(S) = 0 then
    Result := S
  else begin
    Result := LowerCase(S);
    Result[1] := UpCase(Result[1]);
  end;
end;