Hdu1219-AC Me
题目请戳这里:hdu1219
题目分析:
题意就是输入一行不超过十万字的文本,计算每个字母出现的次数并输出。
重点:
因为输入的文本含有空格所以字符数组需要用cin.getline函数来输入文章,而string的话直接输入貌似也会用问题,所以需要用getline函数,然后就是用一个大小为26的数组来储存每个字母出现的次数,最后输出就可以了,注意数组的初始化
#include <iostream>
#include<string>
using namespace std;
int main()
{
char a[100005];
int t;
while(cin.getline(a, 100005))
{
int b[26] = { 0 };
for (unsigned int i = 0; i < strlen(a); i++)
{
if (a[i] <= 'z'&&a[i] >= 'a')
{
t = a[i] - 97;
b[t]++;
}
if (a[i] >= 'A'&&a[i] <= 'Z')
{
t = a[i] - 65;
b[t]++;
}
}
char s = 'a';
for (int i = 0; i < 26; i++)
{
cout << s << ':' << b[i] << endl;
s++;
}
cout << endl;
}
return 0;
}
#include <iostream>
#include<cstring>
#include <string>
#include <memory.h>
using namespace std;
int main()
{
string a;
int t;
int b[26];
while (getline(cin,a))
{
memset(b, 0, sizeof(b));
for (unsigned int i = 0; i < a.size(); i++)
{
if (a[i] <= 'z'&&a[i] >= 'a')
{
t = a[i] - 97;
b[t]++;
}
if (a[i] >= 'A'&&a[i] <= 'Z')
{
t = a[i] - 65;
b[t]++;
}
}
char s = 'a';
for (int i = 0; i < 26; i++)
{
cout << s << ':' << b[i] << endl;
s++;
}
cout << endl;
a.clear();
}
return 0;
}