C++面向对象程序设计50道编程题(第18题)
C++面向对象程序设计50道编程题(第18题)
摘要:C++程序设计实习是为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析问题和解决问题的能力,提高学生运用所学知识解决实际问题的能力。
本专辑为编程入门者、高校计算机软件专业学习或复习提供C++程序设计题库。
读者请先独立思考哦,再与参考程序进行比对检查。
一、问题描述
二、考察内容
基本面向对象概念,如何创建类、对象,对类私有数据成员和公有成员函数的理解,简单的字符串处理。
三、难度等级
难度等级:★★★☆☆
四、参考程序
#include <iostream.h>
#include <string.h>
class Modistr{
char *str;
public:
Modistr(char *s=0);
void print(){cout<<str<<endl;}
~Modistr(){delete []str;}
void Modify(char *);
};
Modistr::Modistr(char *s)
{
str=new char[strlen(s)+1];
strcpy(str,s);
}
void Modistr::Modify(char *wordp)
{
char p1[100],p2[20];
strcpy(p1,str);
strcpy(p2,wordp);
int i=0,n;
for(;p1[i++];)
{
for(int j=i,k=0;p1[j]==p2[k]&&p2[k]!='\0';k++,j++);
if(p2[k]=='\0'){
n=j;
while(p1[n++]);
for(int m=n;m>=j;m--)
p1[m+1]=p1[m];
p1[j]='s';
i=j;
}
}
str=new char[i];
strcpy(str,p1);
}
void main()
{
char *s="We are student ,you are student ,too.";
char *p="student";
Modistr mys(s);
mys.print();
mys.Modify(p);
mys.print();
}
五、心得感受
可以在评论处写下思考和编程此题的感受