首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹proj3下的工程proj3,其中声明了MyString类,它是一个用于表示字符串的类。成员函数reverse将字符串反转,例如“abcde”反转后就成了“edcba”。请补充完整函数reverse。在main函数中给出了一个测试数
使用VC6打开考生文件夹proj3下的工程proj3,其中声明了MyString类,它是一个用于表示字符串的类。成员函数reverse将字符串反转,例如“abcde”反转后就成了“edcba”。请补充完整函数reverse。在main函数中给出了一个测试数
admin
2020-10-21
46
问题
使用VC6打开考生文件夹proj3下的工程proj3,其中声明了MyString类,它是一个用于表示字符串的类。成员函数reverse将字符串反转,例如“abcde”反转后就成了“edcba”。请补充完整函数reverse。在main函数中给出了一个测试数据,此情况下程序的输出应该是:
This is a stnng
gnirts a si sihT
注意:只需在函数reverse的//**********333**********和//**********666**********之间填入若干语句,不要改动程序中的其他内容。
//MyString.h
#include
using namespace std;
char * dup(eonst char*);
class MyString{
char*str;
public:
MyString(const char*s=""):str(dup(s)){}
MyString(eonst MyString&m):str(dup(m.str)){}
~MyString(){delete[]str;}
void reverse();
void show(ostream&os=cout)eonst{os<
};
inline ostream&operator<<(ostream&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(fun);
if(outfile.fail()){eelT<<"打开输出文件失败!";return;}
MyString ml="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()函数首先构造一个MyStrig类对象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自增l,j自减1,直到i不小于j为止。
转载请注明原文地址:https://kaotiyun.com/show/bgyp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下程序:#includeusingnamespacestd;classMyClass{public:MyClass(inti=0){cout
有如下类和对象的定义:classConstants{public:staticdoublegetPI(){return3.1416;}};Constantsconstants;下列各组语
设有定义intx;floaty;,则10+x+y值的数据类型是()。
请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,该工程中包含一个程序文件main.cpp,其中有日期类Date、人员类Person及排序函数sortByName和主函数main的定义。请在程序中的横线处填写适当的代码并删除横线,以
请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,该工程中包含程序文件main.cpp,其中有类Foo和主函数main的定义。程序中位于每个“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的
请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程文件proj3。本题创建一个小型字符串类,字符串长度不超过100。程序文件包括proj3.h、proj3.cpp、writeToFile.obj。补充完成重载赋值运算符函数,完成深复制功能。
请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,其中有点类Point和线段类Line和主函数main的定义,程序中位于每个“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出应为:
有如下程序:#includeusingnamespacestd;classA{public:staticinta;voidinit(){a=1;}A(inta=2){ini
某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)()。
随机试题
编辑小郑需要对一篇有关财务软件应用的书稿“Word素材.docx”进行排版,请按下列要求完成书稿编排工作。书稿中有若干表格及图片,分别在表格上方和图片下方的说明文字左侧添加形如“表1.1”“表2.1”“图1.1”“图2.1”的题注,其中连字符“.”前面
某4段的流水处理机需要7拍才能完成某一个工作,其预约表如下所示。写出延迟禁止表、冲突向量。
患者,女性,23岁,发热、乏力、浮肿、尿少1个月,既往有光过敏史、时有关节肿痛,辅助检查显示中等量蛋白尿,镜下血尿,双侧胸腔中等量积液,血抗Sm抗体(+)患者男性,28岁,持续性镜下血尿2个月,每于上感或劳累后加重,肾活检示肾小球系膜区以IgA为主的免
甲为债权人,乙为债务人,乙应当于2004年8月1日在丙地向甲交付甲所有的一幅字画。但期间届至后,乙并没有履行。经查明,乙将该字画赠给了丙。甲遂向人民法院提起撤销权之诉。在该诉讼中,下列说法正确的有:
下列业务事项中,不会引起资产和负债同时变化的有()。
某市钢铁生产企业为增值税一般纳税人,注册资金9000万元,主营钢铁铸造。2010年2月向当地主管税务机关报送的2009年有关经营情况和纳税情况如下:(1)销售钢铁收入8000万元;(2)销售成本5000万元,其中一部分是利用从废旧物资回收公
员工援助计划在问题诊断阶段主要关注的层面包括()。
以下不属于“春秋五霸”的是()。
在大连国税系统兴起业务学习的风尚,现在你局也要组织一次学习,领导交给你办,你打算怎么做?
有一个虚拟页式存储管理系统,分配给某个进程3个页框(假设开始时页框为空)。某进程执行时的页面访问序列是:0,6,0,1,5,1,5,4,1,2,5,2,4,5,2,3,5,3。若采用最佳页面置换算法(OPT),缺页次数为()次。
最新回复
(
0
)