建立一个类NUM,并统计特定序列中相同的字符的个数。 具体要求如下: (1)私有数据成员 char data[25]:随机生成25个字符。 int num[128]:储存每个字符出现的个数。 (2)公有数据成员 NUM(int data):构造函数,同时初始化数组data。 void process( ):统计数组data中每个字符出现的个数,并保存到数组num中。 void print( ):输出每个出现过的字符及其出现的个数,每行输出5个,没有出现过的字符不显示。 (3)在主程序中定义一个对象,对该类进行测试。
时间: 2024-02-29 18:52:30 浏览: 54
C语言统计一串字符中空格键、Tab键、回车键、字母、数字及其他字符的个数(Ctrl+Z终止输入)
下面是对应的代码实现:
```
#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
class NUM {
private:
char data[25];
int num[128];
public:
NUM(int seed) {
srand(seed);
for (int i = 0; i < 25; i++) {
data[i] = (rand() % 26) + 'a';
}
memset(num, 0, sizeof(num));
}
void process() {
for (int i = 0; i < 25; i++) {
num[data[i]]++;
}
}
void print() {
int cnt = 0;
for (int i = 0; i < 128; i++) {
if (num[i] > 0) {
cout << char(i) << ":" << num[i] << " ";
cnt++;
if (cnt % 5 == 0) {
cout << endl;
}
}
}
if (cnt % 5 != 0) {
cout << endl;
}
}
};
int main() {
NUM obj(42);
obj.process();
obj.print();
return 0;
}
```
这个类中,构造函数会随机生成25个小写字母,然后将所有字符出现次数初始化为0。process函数会统计25个字符中每个字符出现的个数,使用num数组保存。print函数会输出每个出现过的字符及其出现的个数,每行输出5个,而没有出现过的字符不会显示。
在主程序中,我们定义了一个NUM对象,并对其进行测试。
阅读全文