【问题标题】:Comparing a character to a set of characters in Ada将一个字符与 Ada 中的一组字符进行比较
【发布时间】:2012-09-10 03:34:57
【问题描述】:

我正在使用 Ada 并获取和 int,我需要通过将其转换回并针对字符进行测试来检查它是否是转换为 int 的字符。问题是我不想打字

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

我是 Ada 的新手,所以我想知道是否有更简单的方法来代替输入 52 ors。我尝试了几件事,但没有成功。

我想知道我是否可以使用诸如字符范围 'a'..'Z' 之类的东西(另外,'a'..'Z' 是否得到整个字母表?或者也许是 'A'..'z' ?),但我知道这些是值,而不是在类型中使用时的实际字符。

我也可以创建一个函数来检查,但我只需要在代码中的一个位置执行此操作,所以我在这里缺少的快捷方式会很好。我还可以使用一个函数来检查一个变量是否是一个字符,如果它包含在 Ada 中。

【问题讨论】:

    标签: comparison character range ada letter


    【解决方案1】:

    您实际上并不需要地图:

    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;
    

    当然,对于更复杂的检查,地图{或集合}是要走的路。

    【讨论】:

      【解决方案2】:

      找到 Ada.Characters.Handling.Is_Letter()

      【讨论】:

      猜你喜欢
      • 2014-09-18
      • 2014-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-03
      • 2012-08-08
      • 2013-01-20
      相关资源
      最近更新 更多