面向对象程序题(4)
2021/10/31 17:12:22
本文主要是介绍面向对象程序题(4),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
/* 题目:定义一个字符串类string,具体要求如下: (1)私有成员数据: char * str1 ,* str2 ,* str,其中str = str1 + str2 (2)公共成员函数: 构造函数:初始化str1和str2 void del():删除str中的空格字符 void sort():对str中的字符按升序进行排序 void show():输出所有成员数据 (3)设计一个完整的程序对该类进行测试 分别以字符串 “dax e” 和 “5 8”对str1和str2初始化 输出删除空格和排序前的字符串str1,str2,str 输出删除空格和排序后的字符串str1,str2和str */ #include<iostream> using namespace std; #include<string> //创建string类 class String { private: char * str, * str1, * str2; public: String(char* ptr1, char* ptr2); void del(); void sort(); ~String() { delete str; delete str1; delete str2; } }; String::String(char* ptr1, char* ptr2) { //this->str1 = ptr1; //this->str2 = ptr2; //这么写会导致内存多次释放。应该开辟新的空间。 this->str1 = new char[strlen(ptr1) + 1];//在堆区分配内存给str1 this->str2 = new char[strlen(ptr2) + 1]; this->str = new char[strlen(ptr1) + strlen(ptr2) + 1]; //将字符内容复制到新开辟的空间中,利用strcpy函数 strcpy(str1, ptr1); strcpy(str2, ptr2); //如何将两个字符串链接起来???使用strcat函数(字符串链接函数,将后面的连接到前面的末尾) strcpy(str, str1); strcat(str, str2); cout << "构造函数调用" << endl; } void String::del() //思路:遍历str(数组),值为‘ ’时,将当前值变为'\0' { char* p1 = str; char* p2 = p1; while (*p1) { if (*p1 != ' ') { *p2++ = *p1; p1++; } } }
这篇关于面向对象程序题(4)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign学习入门:轻松掌握微服务通信
- 2024-12-27OpenFeign学习入门:轻松掌握微服务间的HTTP请求
- 2024-12-27JDK17新特性学习入门:简洁教程带你轻松上手
- 2024-12-27JMeter传递token学习入门教程
- 2024-12-27JMeter压测学习入门指南
- 2024-12-27JWT单点登录学习入门指南
- 2024-12-27JWT单点登录原理学习入门
- 2024-12-27JWT单点登录原理学习入门