1

私は Ada と get と int を使用しています。それを元に変換して文字に対してテストすることにより、int に変換された文字であるかどうかを確認する必要があります。問題は、私がタイプしたくないということです

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

私は Ada を初めて使用するので、52 ors を入力する代わりにこれを行う簡単な方法があるかどうか疑問に思っていました。私はいくつかのことを試しましたが、成功しませんでした。

文字範囲 'a'..'Z' のようなものを使用できるかどうか疑問に思っていました (また、'a'..'Z' はアルファベット全体を取得しますか? それとも 'A'..'z' ですか?)、しかし、これらは値であり、型で使用された場合の実際の文字ではないことはわかっています。

チェックする関数を作成することもできますが、これを行う必要があるのはコード内の 1 か所だけなので、ここにないショートカットがあると便利です。Ada に含まれている場合、変数が文字かどうかをチェックする関数を使用することもできます。

4

2 に答える 2

5

Ada.Characters.Handling.Is_Letter() が見つかりました

于 2012-09-17T22:09:54.843 に答える
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;

もちろん、より複雑なチェックには、マップ {またはセット} が適しています。

于 2012-09-18T01:56:40.990 に答える