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”的循环。

假设您的书涵盖了函数(可能没有),您可以将 for 循环重构为它自己的函数,可能称为 displayCharactersInTable,它将第一个字符和最后一个字符作为参数。这些将取代循环中“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 回答
0
int b = 97; // the corresponding decimal ascii code for 'a'
int a = 65; // the corresponding decimal ascii code for 'A'

for(int i = 0; i < 26; ++i)
    cout << char('A' + i) << '\t' << a << '\t' << char('a' + i) << '\t' << b << '\n'; //print out 'A' and add i, print out a, print out 'a' and add i, print out b
    ++a; //increment a by 1
    ++b; //increment b by 1
于 2017-05-26T18:42:44.150 回答