2012-09-17 61 views
1

我使用阿達和獲取和INT一組字符,我需要檢查它是否是被轉換回並測試其對一個字符轉換爲int的字符。問題是我不想型比較字符在阿達

if intToChar(popped) = 'a' | 'A' | 'b' | 'B' | (etc.) 
then 

我是新來的Ada,所以我想知道是否有做到這一點,而不是打字了52個ORS更簡單的方法。我嘗試了一些東西,但沒有成功。

我在想,如果我可以使用類似的字符範圍「A」 ..「Z」(也做「一」 ..「Z」得到整個字母?也許「A」 ..'Z '?),但我知道這些是值,而不是在類型中使用時的實際字符。

我也可以做一個函數來檢查,但是我只需要在代碼中的一個地方做到這一點,所以我在這裏失蹤的快捷方式將是很好的。如果包含在Ada中,我也可以使用一個函數來檢查一個變量是否是一個字符。

回答

5

找到Ada.Characters.Handling.Is_Letter()

+0

好找。確保拇指通過所提供的標準庫(http://www.adaic.org/resources/add_content/standards/05rm/html/RM-A.html)的其餘部分,看看有什麼其他的東西等提供。 –

5

你並不真正需要的地圖是:

Subtype Uppercase is Character Range 'A'..'Z'; 
Subtype Lowercase is Character Range 'a'..'z'; 

If C in Uppercase or C in Lowercase then 
    ... 
End if; 

當然更復雜的檢查地圖{或套}都是辦法走。