2016-04-19 1 views
-1

私はwhile文を持っていますが、AからZまでのユーザー入力が対応する電話番号を表示している場合は、それ以外の場合はA〜Zの文字を入力します。複数の||を入力するのではなく、A-Zと言うように式を設定するにはどうしたらいいですか?すべての手紙の声明。私はあなたがA - Zを選択できるライブラリがあることを知っていますが、私は名前を忘れました。どのように各文字の式を入力せずにA-Zを選択できますか?

P.S私はまた、ユーザーがこれらの文字の大文字を選択しても結果を得られるようにしたいと考えています。

中断して申し訳ありません。左と完全 おかげ

  while (letter == 'a' || letter == 'b' || letter == 'c' || letter == 'd' || 
       letter == 'e' || letter == 'f' || letter == 'g' || letter == 'h' || 
       letter == 'i' || letter == 'j' || letter == 'k' || letter == 'l' || 
letter == 'm' || 
       letter == 'n' || letter == 'o' || letter == 'p' || letter == 'q' || letter == 
       'r' || letter == 's' || letter == 't' || letter == 'u' || letter == 'v' || 
       letter == 'w' || letter == 'x' || letter == 'y' || letter == 'z')        
          {             //Line 14 
           cout << "Letter: " << letter;     //Line 15 
           cout << ", Corresponding telephone digit: "; //Line 16 

         num = static_cast<int>(letter) 
         - static_cast<int>('A');     //Line 17 

         if (0 <= num && num < 26)      //Line 18 
         {            //Line 19 
          digit = (num/3) + 2;      //Line 20 

          if (((num/3 == 6) || (num/3 == 7)) //Line 21 
           && (num % 3 == 0))     //Line 22 
           digit = digit - 1;      //Line 23 

          if (digit > 9)        //Line 24 
           digit = 9;        //Line 25 

          cout << digit << endl;      //Line 26 
         }            //Line 27 
         else           //Line 28 
          cout << "Invalid input." << endl;   //Line 29 

         cout << "\nEnter another uppercase " 
         << "letter to find its corresponding " 
         << "telephone digit." << endl;   //Line 30 
         cout << "To stop the program enter #." 
         << endl;         //Line 31 
+3

[ 'のstd :: isalpha'](http://en.cppreference.com/w/cpp/string/を参照するには右スクロールする必要がありバイト/ isalpha) – NathanOliver

+0

ありがとうございました –

答えて

1

使用std::isalpha

#include <cctype> 
//... 
while (std::isalpha(letter)) 
+0

'std :: isalpha()'にはデフォルトで大文字と小文字の両方が含まれています。問題のコードは小文字だけに興味があるので、 'std :: islower()'も使用してください。 –

+0

はすぐに点灯します。感謝 –

+0

@RemyLebeau OPは大文字と小文字をチェックできるようにしたい:* P.Sまた、これらの文字の大文字を選択しても結果を得ることができるようにしたい* – NathanOliver

関連する問題