2015-03-02 25 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; 
相關問題