使用大写和小写字母C ++初始化数组

时间:2013-04-15 04:35:38

标签: c++

//Loop to initialize the array of structs; set count to zero

for(int i = 0; i < 26; i++)
{
    //This segment sets the uppercase letters
    letterList[i].letter = static_cast<char>(65 + i);
    letterList[i].count = 0;

    //This segment sets the lowercase letters
    letterList[i + 26].letter = static_cast<char>(97 + i);
    letterList[i + 26].count = 0;
}

//这似乎不起作用!!!

整个程序,获取一个文本文件,读取它然后打印出所使用的每个字母,使用它的次数和出现的百分比......但是,我的输出不断出现:

字母数发生百分比

¿0 0.00%

52次....

我到处搜索,似乎无法得到这个......

2 个答案:

答案 0 :(得分:1)

我没有看到此代码输出有任何问题

    letterType letterList[52];
    for(int i = 0; i < 26; i++)
    {
        //This segment sets the uppercase letters
        letterList[i].letter = static_cast<char>('A' + i);
        letterList[i].count = 0;

        //This segment sets the lowercase letters
        letterList[i + 26].letter = static_cast<char>('a' + i);
        letterList[i + 26].count = 0;
    }
    for (int i = 0; i < 26 * 2; i++)
        cout<<letterList[i].letter<<" "<<letterList[i].count<<endl;

答案 1 :(得分:0)

for(int i=0, c='a'; i<26; i++)
{
        letterList[i] = c++;
}
for(int i=26,c='a'; i<52; i++)
{
        letterList[i] = toupper(c++);
}

或者,你可以用这个替换第二个for循环:

for(int i=26,c='A'; i<52; i++)
{
        letterList[i] = c++;
}

编辑

根据您要求struct的要求 假设您的struct有一个char成员且每个struct个实例都带有每个字母,这就是代码:

struct letterType
{
    char letter;
};

int main()
{
    struct letterType letterList[52];
    char c;
    for(int i=0, c='a'; i<26; i++)
    {
            letterList[i].letter = c++;
    }
    for(int i=26,c='a'; i<52; i++)
    {
            letterList[i].letter = toupper(c++);
    }
    for(int i=0; i<52; i++)
    {
            cout<< letterList[i].letter << endl;
    }
}