C++ 计算for循环c++; 文本; //***************************计算发生次数************************ for(int i(0);i文本; //***************************计算发生次数************************ for(int i(0);i

C++ 计算for循环c++; 文本; //***************************计算发生次数************************ for(int i(0);i文本; //***************************计算发生次数************************ for(int i(0);i,c++,arrays,visual-c++,C++,Arrays,Visual C++,下面的代码工作到一定程度,如果用户键入hello frequencyarray存储11121,如果用户键入aaba frequency array存储1213,则会发生什么情况 我不想要运行总数,我想要数组存储1121和31。因此,如果出现相同的字母,则会向数组中添加1 谢谢大卫 #include <iostream> //for cout cin #include <string> //for strings #include <fstream> //

下面的代码工作到一定程度,如果用户键入hello frequencyarray存储11121,如果用户键入aaba frequency array存储1213,则会发生什么情况 我不想要运行总数,我想要数组存储1121和31。因此,如果出现相同的字母,则会向数组中添加1

谢谢大卫

#include <iostream> //for cout cin
#include <string>   //for strings
#include <fstream>  //for files

using namespace std;

int main()
{       
    string text;

    int frequencyarray [26]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

    cout << "Enter Word: ";
    cin >> text;

//***************************COUNT OCCURANCES************************

    for (int i(0); i < text.length(); i++)
    {
        char c = text[i];

        c = toupper(c);
        c -= 65;

        if (c < 26 || c >=0)
        {
            frequencyarray[c]++;
            cout << frequencyarray[c];
        }
    }

    system ("pause");

return(0);

}`
#包括//for cout cin
#包含//用于字符串
#包括//文件
使用名称空间std;
int main()
{       
字符串文本;
int frequencyarray[26]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
cout>文本;
//***************************计算发生次数************************
for(int i(0);i=0)
{
频率数组[c]++;

cout如果您不想要运行总数,请不要使用
cout试试这个

#include <iostream> //for cout cin
#include <string>   //for strings
#include <fstream>  //for files
#include <algorithm>

using namespace std;

int main()
{       
    string text;

    int frequencyarray [26]={0};

    cout << "Enter Word: ";
    cin >> text;

//***************************COUNT OCCURANCES************************

    for (int i(0); i < text.length(); i++)
    {
        char c = text[i];

        c = toupper(c);
        c -= 65;

        if (c < 26 || c >=0)
        {
            frequencyarray[c]++;
        }
    }

    std::for_each(std::begin(frequencyarray), std::end(frequencyarray), [](int i)
    {
         std::cout << i << ",";
    });
    std::cout << "\n";
    system ("pause");

return(0);

}
#包括//for cout cin
#包含//用于字符串
#包括//文件
#包括
使用名称空间std;
int main()
{       
字符串文本;
int frequencyarray[26]={0};
cout>文本;
//***************************计算发生次数************************
for(int i(0);i=0)
{
频率数组[c]++;
}
}
std::for_each(std::begin(frequencyarray),std::end(frequencyarray),[](int i)
{

std::cout在循环中输出数组的内容不是问题吗?第一次找到字母“a”时,1将在下次打印2,依此类推。将数组转储到循环外,您将获得正确的输出。您还应该在if语句中使用
&&
。现在所有字符都将符合条件。您可以也可以使用
c-=“A”;
代替常量
65