1

私はこの本で勉強しています (独学)。ちょっとした「これを試してみる」練習を手伝ってくれたら本当にありがたいです。

これは私が書いたコードです:

#include "../../../std_lib_facilities.h"

int main()
{
    for (char i ='a'; i <='z'; ++i) {
        int x = i;
        cout << i << '\t' << x << '\n';
    }
    keep_window_open();
    return 0;
}

本によると、次のステップは次のとおりです。「[...]次に、大文字と数字の整数値のテーブルも書き出すようにプログラムを変更します」それを行う関数はありますか、それとも単に持っていますかAから始まるループを繰り返すには?ありがとう

4

3 に答える 3

3

はい、「A」から「Z」、「0」から「9」のループを繰り返します。

あなたの本が関数をカバーしていると仮定すると (そうでないかもしれません)、最初の文字と最後の文字を引数としてとる displayCharactersInTable と呼ばれる独自の関数に for ループをリファクタリングするかもしれません。これらは、ループ内の「a」と「z」の使用を置き換えます。したがって、メイン関数は次のようになります。

...
displayCharactersInTable('a', 'z');
displayCharactersInTable('A', 'Z');
displayCharactersInTable('0', '9');
...
于 2012-09-11T18:16:09.920 に答える
0
const char lc_alphabet[] = "abcdefghijklmnopqrstuvwxyz";
const char uc_alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

int main() {
    for (const char *cur = lc_alphabet; cur < lc_alphabet + sizeof(lc_alphabet); ++cur)
        std::cout << *cur << \t << (int)*cur << '\n';
    for (const char *cur = uc_alphabet; cur < uc_alphabet + sizeof(uc_alphabet); ++cur)
        std::cout << *cur << \t << (int)*cur << '\n';
return 0;
}

このコードは、文字表現が連続している (またはアルファベット順に増加している) ことを想定していないため、すべての文字エンコーディングで機能します。

于 2012-09-11T18:44:05.130 に答える