首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹proj3下的工程proj3,其中声明了MyString类,它是一个用于表示字符串的类。成员函数reverse将字符串反转,例如“abcde”反转后就成了“edcba”。请补充完整函数reverse。在main函数中给出了一个测试数
使用VC6打开考生文件夹proj3下的工程proj3,其中声明了MyString类,它是一个用于表示字符串的类。成员函数reverse将字符串反转,例如“abcde”反转后就成了“edcba”。请补充完整函数reverse。在main函数中给出了一个测试数
admin
2021-09-05
37
问题
使用VC6打开考生文件夹proj3下的工程proj3,其中声明了MyString类,它是一个用于表示字符串的类。成员函数reverse将字符串反转,例如“abcde”反转后就成了“edcba”。请补充完整函数reverse。在main函数中给出了一个测试数据,此情况下程序的输出应该是:
This is a string
gnirts a si sihT
注意:只需在函数reverse的//**********333**********和//**********666**********之间填入若干语句,不要改动程序中的其他内容。
//MyString.h
#include
using namespace std;
char*dup(const char*);
class MyString{
char*str;
public:
MyString(const char*s=””):str
(dup(S)){}
MyString(const MyString&m):str
(dup(m.str)){}
一MyString()f delete[]str;)
void reverse();
void show(ostream&os=cout)const{
OS<
};
inline ostream&operator<<(ostrearn&OS,const MyString&m){
m.show(os);
return os;
}
void writeToFile(const char*path);
//MyString.cpp
#include”MyString.h”
char*dup(const char*S){
char*P=new char[strlen(s)+
1];
strcpy(P,S);
return p;
}
void MyString::reverse(){
//**********333**********
}
//**********666**********
}
void writeToFile(const char*path);
//writetoFile.cpp
#include
#include”MyString.h”
void writeToFile(const char*path){
char full[50];
strcpy(full,path);
strcat(full,”out.dat”);
ofstream outfile(full);
if(outfile.fail()){cerr<<”打
开输出文件失败!”;return;)
MyString m1=”This is another
string”;
MyString m2(”字符串反转演示”);
outfile<
m1.reverse();
m2.reverse();
outfile<
outfile.close(),
}
选项
答案
VOid MyString::reverse() { int i,j; char ch; int len=strlen(str); for(i=0,j=len一1;i
解析
程序定义了MyString类,它包含一个成员:str字符指针;默认构造函数和复制构造函数通过dup()函数,动态分配地址p’将参数拷贝到p指向的内存空间,再使用p初始化str;show()成员函数将str指向的字符串输出;reverse()成员函数将str指向的字符串反转;重载的<<运算符函数调用形参m对象的show()函数输出str指向的字符串。
main()函数首先构造一个MyString类对象m1,构造过程中传入字符串“This is a string”,所以m1对象中的str指向一个动态分配的内存空间,该段内存存放拷贝的字符串“This is a string”,输出m1后;再调用m1.reverse()函数,将str指向的字符串进行反转,再输出m1,题意要求我们完成reverse()成员函数的定义,完成反转字符串的功能。
由题意,我们仅有的信息就是str指向一个字符串,它是char宰类型,需要对str指向的字符串进行反转,需要获得字符串的长度,然后将首尾字符进行交换,直到交换到中间字符串为止,所以我们定义两个变量i、j,表示元素下标,分别从首(i=0)和尾(长度一1)向中间遍历该字符串,每次遍历,首先判断i是否小于j,若i小于j则将i和j下标对应的字符进行交换,交换完成后i自增1,j自减1,直到i不小于j为止。
转载请注明原文地址:https://kaotiyun.com/show/cdfp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下程序:#inc1ude<iostream>usingnamespacestd;classMyclass{public:Myclass(intx):val(x){}voidSet(i
下列叙述中正确的是
请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2。此工程中包含一个源程序文件main.epp,其中有“房间”类Room及其派生出的“办公室”类Office的定义,还有主函数main的定义。请在程序中“//****found****”
下列叙述中正确的是( )。
下列语句中错误的是()。
假定在一个程序中执行到语句:cout
有如下类定义:classMyClass{public:_________________private:intdata;};若要为MyClass类重载流输入运算符“>>”,使得程序中可以“cin>>obj;”的形式改变MyClass类的
软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是()。
下列有关继承和派生的叙述中,正确的是()。
下列有关继承和派生的叙述中,正确的是()。
随机试题
(12年4月真题)下列关于国际贸易支付方式的表述,正确的是()
患者,女,28岁。因心悸、气短、咯血2小时来诊。查体:双肺布满湿啰音和哮鸣音,心尖部闻及舒张期杂音,肺动脉瓣区第二心音亢进。首先选择的治疗是
A.五日用量B.二日常用量C.二日极量D.三日常用量E.七日常用量
2009年3月某天半夜,家住县城中心区的居民甲,发现一伙窃贼正在撬砸住所对面的商店卷闸门。甲当即拨打110报警,值班民警接警后说:“下这么大的雨,哪有小偷?”说完即挂断电话。甲再次拨通110电话报警,又遭到拒绝。次日,被盗商店店主乙发现被盗走物品价值共5万
计算机系统中,存储器系统包括()。
债券投资收益率包括()。
在一堂课开始时设疑提问,可以起到快速激发学生求知心理的效果;课中提问,有利于触发学生的思维共鸣:在课尾提问,既可以总结回顾课堂要点,又可以引导学生预习下一节新课内容。以上提问方式体现了哪条原则?
女性,18岁,体检发现心脏杂音来诊。平时不能耐受较大的体力活动,无双下肢水肿及夜间呼吸困难史,易感冒。查体:血压130/80mmHg,心率90次/分。S1↓,S2稍↑。A:SM3/6反流样向左腋下传导,L4.5可闻收缩期Click音,下蹲位站立后Click
在窗体上画一个名为Text1的文本框和一个名称为Command1的命令按钮,然后编写如下事件过程:PrivateSubCommand1_Click()Dimarrayl(10,10)AsIntegerD
WhenMarypaidthebill,shewasgivena______forhermoney.
最新回复
(
0
)