コードのコンパイル中にエラーが発生しました。
エラー出力:
main.cpp: 35:16: エラー: スイッチ数が整数ではありません
どうしてか分かりません。コードは次のとおりです。
int Values(string letter) {
switch( tolower(letter) ) {
case 'a' : a.setTotal();
break;
よろしく
コードのコンパイル中にエラーが発生しました。
エラー出力:
main.cpp: 35:16: エラー: スイッチ数が整数ではありません
どうしてか分かりません。コードは次のとおりです。
int Values(string letter) {
switch( tolower(letter) ) {
case 'a' : a.setTotal();
break;
よろしく
Astringは ではなく、char文字の配列を表すオブジェクトです。stringその関数に a を渡す代わりに、 aを渡す必要がありcharます。
tolower(int)C++ に存在し、文字列ではなく文字を取ることを意図していました。
これを修正する別の方法を次に示します。コードの変更が少なくて済みます。
名前から判断すると が長すぎるletterと確信しているので、ステートメントを accessに変更できます。これは の最初の文字になります。にも渡す必要があります。string1switchletter[0]stringletter[0]tolower
letterは文字列なのでtolower(letter)、文字列を生成します。しかし、あなたのケースは文字 ('a') です。さらに、C/C++ では文字列にスイッチを使用することはできません。代わりに次の行を使用します。
switch( tolower(letter.data[0]) )
スイッチの記述は、列挙型 (enum)、chars(char)、または整数 (int、unsigned、long) のみを取ります。
単一のキャラクターで作業したいようです。
関数のパラメーターを変更します。
int Values(string letter)
これに:
int Values(char letter)
そして、switchステートメントは機能します。