C++ 如何在C+代码中组成字母循环部分+;行吗?
您可以在这里看到代码有三个部分。主要部分和瞬间部分要求我找出我所做的行号和字号。但当我调用第三部分(即字母频率函数)时,该部分不会出现在控制台中。我看了很多地方,但没有找到答案。如果不太麻烦的话,我会从中获益的,以防有人会这么做 预期输出: 输入您的字符串: 嗨,丽莎 你好吗# 输入有2行、7个单词和以下字母频率: A:2B:0C:0……像这样 立即输出: 输入您的字符串: 嗨,丽莎 你好吗# 输入有2行、7个单词和以下字母频率:C++ 如何在C+代码中组成字母循环部分+;行吗?,c++,arrays,string,pointers,ascii,C++,Arrays,String,Pointers,Ascii,您可以在这里看到代码有三个部分。主要部分和瞬间部分要求我找出我所做的行号和字号。但当我调用第三部分(即字母频率函数)时,该部分不会出现在控制台中。我看了很多地方,但没有找到答案。如果不太麻烦的话,我会从中获益的,以防有人会这么做 预期输出: 输入您的字符串: 嗨,丽莎 你好吗# 输入有2行、7个单词和以下字母频率: A:2B:0C:0……像这样 立即输出: 输入您的字符串: 嗨,丽莎 你好吗# 输入有2行、7个单词和以下字母频率: #include <iostream> #inclu
#include <iostream>
#include<cmath>
#include<math.h>
#include<iomanip>
#include<string>
#include<cstring>
void letter_frequency(char le[]);
int main()
{
char str[400] = " ";
int words = 1;
int lines = 1;
cout << "Enter Your String : ";
cin.get(*str);
while (*str != '#')
{
cin.get(*str);
if (*str == ' ' || *str == '\n')
words++;
if (*str == '\n')
lines++;
}
cout << "The input has " << lines << " lines, " << words
<< " words," << " and the following letter frequencies : \n";
letter_frequency(str);
return 0;
}
void letter_frequency(char le[])
{
//for Capitals
int sum = 0;
for (int i = 65; i <= 95; i++)
{
sum = 0;
for (int j = 0; j < sizeof(le); j++)
{
if ( (int)le[j] == i)
{
sum = sum + 1;
}
}
if (sum > 0)
{
cout << (char)i << ": " << sum << "\t" << endl;
}
}
//For Small
for (int i = 97; i <= 122; i++)
{
sum = 0;
for (int j = 0; j < sizeof(le); j++)
{
if ( (int)le[j] == i)
{
sum = sum + 1;
}
}
if (sum > 0)
{
cout << (char)i << ": " << sum << "\t" << endl;
}
}
}
#包括
#包括
#包括
#包括
#包括
#包括
无效字母_频率(字符[]);
int main()
{
字符str[400]=“”;
int字=1;
int行=1;
cout首先,除非教授强迫您使用原始char
数组作为学习练习,否则您肯定应该使用std::string
其次,在不深入研究代码是否真的实现了它的承诺的情况下,我怀疑您遇到的主要错误是在for循环中:
for(int j=0;jj你的#include
s在哪里?请给出一个简单的输入和预期与实际输出的示例。在我看来,你一次只能得到一个字符,不断地用当前字符覆盖上一个字符;它总是被输出到str[0]<代码> > LeTyLyTypU[/COD] >因此只有最后一个字符输入要处理,这是一个<代码> >代码> >代码,它不在你所检查的ASCII范围内,所以它不会打印任何东西。BTW:你使用C++,所以你有没有理由使用RAW <代码> char < /CARD>数组而不是<代码> STD::String < /Cord>?@ JabbWokkyy是的,在我的问题中,我被告知使用char
,并等待#includes
和输入以及预期结果output@Den-Jason我稍微了解你的观点。但我不知道如何解决它。我只是在学习,还是个初学者。我的意思是,我如何才能将输入放入函数<代码>字母频率代码>我想不出来我尝试了你的1,4备选方案与我得到的结果类似。可能我无法整理出“字母频率”内的信息,很抱歉不理解你获得的2,3,5选项,我没有检查你的逻辑是否存在其他问题。在我尝试构建和运行调整后的代码时line compiler从未完成,这表明您还有其他问题。我只是回答了我所看到的与您使用该语言有关的一个特定缺陷——即,您使用了sizeof
。关于其他答案,请随意提问,但#2应该很容易实现:只需替换您对sizeof
的使用即可thstrlen
。它不会像您所需要的那样高效,但它至少会循环您想要的次数,并且易于实现。无论如何,非常感谢您告诉我我可以使用字符串。我可能会重新评估这个问题,或者我没有任何线索