博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象程序设计2018上机题(3)
阅读量:4159 次
发布时间:2019-05-26

本文共 1742 字,大约阅读时间需要 5 分钟。

/*设计一个类,用于对字符串进行管理。要求:(1)在定义对象时,能够确定字符串的最大长度并清空字符串。(2)定义成员函数input, 用于从键盘为字符串输入数据。(3)定义运算符重载函数,用于判断两个对象中的字符串是否相同。(4)定义成员函数exchange,用于互换字符串中ASCII码最大和最小的字符(需考虑字符串中存在多个最大和最小字符的情况)。(5)定义成员函数disp,用于显示字符串。(6)定义main函数,合理地调用上述每个函数。*/#include 
#include
#include
using namespace std;class cString{private: char *p; int num;//记录字符串字数public: cString(int n); ~cString(); void input(); bool operator==(const cString &c); void exchange(); void disp();};cString::cString(int n=0){ num = n > 0 ? n : 0; p = new char[num]; memset(p, 0, sizeof(num)); //strcpy(p, "");/*相当于p[0]=0;只完成了数组首地址置0*/}cString::~cString(){ delete[]p;}void cString::input(){ cout << "请输入" << num << "字的字符串(回车结束):" << endl; for (int i = 0; i < num; i++) { cin >> p[i]; }}bool cString::operator==(const cString &c){ int flag = 1; for (int i = 0; i < num; i++) { if (p[i] != c.p[i]) { flag = 0; cout << "两字符串不相等" << endl; return false; } } cout << "两字符串相等" << endl; return true;}void cString::exchange(){ char max_c = p[0]; char min_c = p[0]; for (int i = 0; i < num; i++) { if (p[i] > max_c) { max_c = p[i]; } else if (p[i] < min_c) { min_c = p[i]; } } if (max_c == min_c) { cout << "该字符串中所有字符相同,无最大或最小字符" << endl; } else { for (int i = 0; i < num; i++) { if (p[i] == max_c) { p[i] = min_c; } else if (p[i] == min_c) { p[i] = max_c; } } }}void cString::disp(){ for (int i = 0; i < num && p[i] != '\0'; i++) { cout << p[i]; } cout << endl;}int main(){ int n = 0; cout << "请输入需要字符串个数n:" ; cin >> n; cString c1(n); c1.input(); cout << "请输入需要字符个数n:"; cin >> n; cString c2(n); c2.input(); cString c3 = c1; cout << "c1==c2 ?" << endl; c1 == c2; cout << "c1==c3 ?" << endl; c1 == c3; c1.exchange(); c1.disp(); system("pause"); return 0;}

 

转载地址:http://lqdxi.baihongyu.com/

你可能感兴趣的文章
boost库在工作(14)绑定器与函数对象之二
查看>>
boost库在工作(15)绑定器与函数对象之三
查看>>
boost库在工作(16)线程之一
查看>>
boost库在工作(17)线程之二
查看>>
boost库在工作(18)线程之三
查看>>
boost库在工作(19)线程之四
查看>>
boost库在工作(20)线程之五
查看>>
boost库在工作(21)任务之一
查看>>
boost库在工作(22)任务之二
查看>>
boost库在工作(23)任务之三
查看>>
boost库在工作(24)任务之四
查看>>
boost库在工作(25)任务之五
查看>>
boost库在工作(26)网络客户端之一
查看>>
boost库在工作(27)网络客户端之二
查看>>
boost库在工作(28)网络客户端之三
查看>>
boost库在工作(29)网络客户端之四
查看>>
boost库在工作(30)网络客户端之五
查看>>
boost库在工作(31)网络服务端之一
查看>>
boost库在工作(32)网络服务端之二
查看>>
Nginx读书笔记(3) —— 模块添加之config文件的写法
查看>>