【发布时间】:2023-02-21 22:52:25
【问题描述】:
我需要计算有多少字母和哪些字母包含输入的文本。 (考虑大小写)
我已经用文本中的数字完成了类似的任务:
int main()
{
char text[255];
int count[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
cin.getline(text, 255);
int i = 0;
while (text[i] != '\0')
{
switch (text[i])
{
case '0': ++count[0];
break;
case '1': ++count[1];
break;
case '2': ++count[2];
break;
case '3': ++count[3];
break;
case '4': ++count[4];
break;
case '5': ++count[5];
break;
case '6': ++count[6];
break;
case '7': ++count[7];
break;
case '8': ++count[8];
break;
case '9': ++count[9];
break;
}
++i;
}
for (int i = 0; i < 10; i++)
{
cout << endl << '[' << i << "] = " << count[i];
}
}
但是我想知道是否有一种方法可以不将大小写字母都写成52个大小写。我想我需要使用 ASCII 表,但我不能将它们放在一起。
【问题讨论】:
-
只需使用
std::map -
只是
++count[text[i]]? -
std::string text;,std::unordered_map<char, int> count;就这样,问题解决了 -
但是我想知道是否有一种方法可以不将大小写字母都写成52个大小写。-- 一张地图不仅允许 52 个案例,还允许任意数量的独立字符。如果使用的语言不是英语怎么办?
-
顺便说一句,确切的骗局:stackoverflow.com/a/38697323/4165552