2015-03-02 75 views
-1

有没有办法接受用户输入,无论是字符还是无限的字符串,并将其转换为小写?Ada - 是否有一个函数使字符或无界的字符串小写?

newLine, N: unbounded_string; 
M: string(1..26); 
len: integer; 

new_line; new_line;  
put("What is your favorite color?"); 
new_line; 
put("Answer:"); 
get_line(newLine); 
get_line(M,len); 
N := to_unbounded_string(to_lower(M)); 
put_line(N); 

而对于我输入:如果键入BLUEput_line(N);将返回[email protected]�hw�

回答

1

对于Character和固定长度String,有Ada.Characters.Handling.To_LowerRM A.3.2

而且,类似的功能存在Wide_CharacterWide_StringWide_Wide_CharacterWide_Wide_StringAda.Wide_Characters.HandlingAda.Wide_Wide_Characters.Handling

+0

所以对于字符我会使用Ada.Characters.Handling.To_Lower。对于无界的字符串,我使用Wide_Character或我最初使用的内容 – Benjer 2015-03-02 20:41:12

+0

不,“Unbounded_String”与“Wide_Character”或“Wide_String”不同[ – egilhh 2015-03-02 20:42:30

+0

]您可以将'Ada.Characters.Handling.To_Lower'用于固定长度的String '并转换为'Unbounded_String' – egilhh 2015-03-02 20:43:33

0
with Ada.Strings; 
with Ada.Strings.Maps.Constants; 
with Ada.Strings.Unbounded; 
with Ada.Text_IO; 
with Ada.Text_IO.Unbounded_IO; 

procedure Change_Case is 

    S : Ada.Strings.Unbounded.Unbounded_String; 

begin 
    Ada.Text_IO.Put_Line("Enter a string: "); 
    S := Ada.Strings.Unbounded.To_Unbounded_String(Ada.Text_IO.Get_Line); 
    Ada.Text_IO.Unbounded_IO.Put_Line(S); 
    Ada.Strings.Unbounded.Translate(S, Ada.Strings.Maps.Constants.Lower_Case_Map); 
    Ada.Text_IO.Unbounded_IO.Put_Line(S); 
    Ada.Strings.Unbounded.Translate(S, Ada.Strings.Maps.Constants.Upper_Case_Map); 
end Change_Case; 
相关问题