Ada:如何将枚举打印为小写

Num*_*rry 4 enumeration ada

我的名字以大写字母开头,其余为小写字母。它仅以大写形式打印。如何按照我的定义进行打印?谢谢!

tra*_*god 6

在实例中调用相关过程时,请Lower_CaseType_Set参数指定。鉴于这些声明,PutAda.Text_IO.Enumeration_IO

type Name_Type is (Alice, Bob, Carl);
package Name_IO is new Ada.Text_IO.Enumeration_IO (Name_Type);
Run Code Online (Sandbox Code Playgroud)

以下代码在控制台上显示“ bob”:

Name_IO.Put(Bob, Name_IO.Default_Width, Ada.Text_IO.Lower_Case);
Run Code Online (Sandbox Code Playgroud)

我可以用“鲍勃”代替“鲍勃”吗?

是; 例如,

  • 使用Ada.Characters.Handling的功能To_LowerTo_Upper以及To_Basic可用于字符串和字符,如图所示这里

  • 使用Enumeration_IOAda.Strings.Fixed,以下片段将显示“ Bob”。

    Upper : String(1 .. 8);
    Lower : String(1 .. 8);
    …
    Name_IO.Put(Upper, Bob, Ada.Text_IO.Upper_Case);
    Name_IO.Put(Lower, Bob, Ada.Text_IO.Lower_Case);
    Ada.Text_IO.Put_Line(Ada.Strings.Fixed.Trim(
       Upper(Upper'First) & Lower(Lower'First + 1 .. Lower'Last),
       Ada.Strings.Right));
    
    Run Code Online (Sandbox Code Playgroud)