C++面向对象程序设计50道编程题(第04题)

C++面向对象程序设计50道编程题(第04题)

摘要:C++程序设计实习是为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析问题和解决问题的能力,提高学生运用所学知识解决实际问题的能力。
  本专辑为编程入门者、高校计算机软件专业学习或复习提供C++程序设计题库。
  读者请先独立思考哦,再与参考程序进行比对检查。

一、问题描述

在这里插入图片描述

二、考察内容

  基本面向对象概念,如何创建类、对象,对类数据成员和成员函数的理解,简单的排序算法。

三、难度等级

难度等级:★☆☆☆☆

四、参考程序

#include <iostream.h>
#include <string.h>
class String{
 	char * str1,* str2;
 	char *str;
public:
	String(char*ptr1,char*ptr2);
	void dele( );
	void sort( ); 
	void show( );
	~String(){delete[]str1;delete[]str2;delete[]str;}
};
String::String(char*ptr1,char*ptr2) {
	str1=new char[strlen(ptr1)+1];	
	strcpy(str1,ptr1);//对内存空间赋值
	str2=new char[strlen(ptr2)+1];
	strcpy(str2,ptr2);
	str=new char[strlen(ptr1)+strlen(ptr2)+1];
	strcpy(str,ptr1);strcat(str,ptr2);
}
void String::dele( ){
	char*ptr1=str,*ptr2=str;
	while(*ptr1){
		if(*ptr1!=' ')*ptr2++=*ptr1;
		ptr1++;
	}
	*ptr2='\0';
}
void String::sort( ){
	char*ptr1=str,*ptr2,temp; //注14 ptr1 和ptr2保证成员指针不移动
	while(*ptr1)
	{
		for(ptr2=ptr1;*ptr2;ptr2++)
			if(*ptr1>*ptr2){
				temp=*ptr1;*ptr1=*ptr2;*ptr2=temp;
			}
		ptr1++;
	}
}
void String::show( ){
	cout<<"str1="<<str1<<endl; 
	cout<<"str2="<<str2<<endl; 
	cout<<"str="<<str<<endl; 
}
void main( ){
	String str("da b","4  1");
	str.show();	
	str.dele();	
	str.sort();	
	str.show();	
}

五、心得感受

可以在评论处写下思考和编程此题的感受

  • 4
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华师数据学院·王嘉宁

$感谢支持$

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值