首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。函数convert(char*des,char*str)的功能是去掉字符串str中相同的字母,并将处理后的结果存到des所指的字符串中。 例如: 输入:T
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。函数convert(char*des,char*str)的功能是去掉字符串str中相同的字母,并将处理后的结果存到des所指的字符串中。 例如: 输入:T
admin
2015-05-30
61
问题
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。函数convert(char*des,char*str)的功能是去掉字符串str中相同的字母,并将处理后的结果存到des所指的字符串中。
例如:
输入:This is great!
输出:This grea!
注意:不能修改程序的其他部分,只能补充fun()函数。
1 #include
2 #define MAXLEN 1024
3 void convert(char*des,char*str)
4 {
5
6 }
7 void main()
8 {
9 char sour[MAXLEN];
10 char dest[MAXLEN];
11 cout<<"Please input a string:"<
12 cin.getline(sour,MAXLEN);
13 convert(dest,sour);
14 cout<
15 return;
16 }
选项
答案
1 int i,J; 2 bool ToAdd; 3 des[0]=0; 4 for(i=0;str[i]!=NULL;i++) 5 { 6 ToAdd=true; 7 for(J=0 ; deS[j]!=NULL; j++) 8 { 9 if(str[i]==des[j]) 10 { 11 ToAdd=false;//des数组中已存在该元素,将标志位设置为假,说明不用再添加 12 break;//des数组中已存在该元素,跳出循环 13 } 14 } 15 if(ToAdd)//des数组中不存在,添加进来 16 { 17 des[j]=str[i]; 18 des[j+1]=0 ; 19 } 20 }
解析
convert(char*des,char*str)函数的功能是去掉字符串str中相同的字母,并将处理后的结果存到des所指的字符串中。原来的字符串存放在s仃指向的数组中,新字符串存放在des指向的数组中,因此可逐个读取str指向的数组里面的字符,把不同的字符放入des指向的数组中,即每次读str指向的数组一个字符,就在des指向的数组里面查找是不是已经有该字符了,如果已经有了则不添加进来,反之则把该字符加入到des指向的数组中。
[解题思路]
(1)由审题分析可知,需要两重循环,外层循环不断读取str中的元素,内循环在des数组中查找读到的str中的字符,如果找到了des数组中已存在该元素不需要添加,如果没找到则添加到des数组中。
(2)在外循环体内,先设置bool型的标志变量ToAdd为真,假设str
不存在在des数组中,然后再内循环中,用str
~H des[j]比较,如果相同说明已经存在了,将ToAdd设置为假,des[j]后面的元素不需要再比较了,跳出内循环。
(3)通过判断ToAdd可知,str
是否存在des数组中,如果ToAdd为真,则说明des数组中不存在str
,将str
添加到des数组中。
转载请注明原文地址:https://kaotiyun.com/show/5PNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
根据变量定义“staticintx[5],y[2][3]={9,6,3,1,4,7};”,x[4]=【】,y[1][2]=【】。
关于对象成员的构造函数的调用顺序,说法正确的是______。
若有如下类定义:classB{voidfunl(){}protected:doublevarl:public:voidfun2(){}};classD:public
在函数中,可以用auto、extem、register和static四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是()。
数据库系统的基础是()。
执行语句序列ofstreamoutfile("data.dat");if(...)cout<<"ok";elsecout<<"fail";后,如果文件打开成功,显示“ok”,否则显示“fail”。由此可知,上面if语句的“...
假定MyClass为一个类,那么下列的函数说明中,()为该类的析构函数。
下列关于类和对象的叙述中,错误的是()。
程序段的输出结果是【】。inta=12,b=12;cout<<--a<<“”<<++b;
面向对象的模型中,最基本的概念是对象和【】。
随机试题
催化剂中的各种组分对化学反应都有催化作用。()
常在高浓度下实施单次肺活量完成吸入麻醉诱导药物是
探头护养要求不包括
甲上市公司在年度报告中对财务会计报告做虚假记载,由乙证券公司承销,甲公司的行为致使投资者在证券交易中遭受巨大损失。投资人将甲公司的控股股东告上法庭,法院认为应当追加甲公司为共同被告但是原告不同意,法院通知甲公司作为共同被告参加诉讼。本案应由哪个法院管辖:
水泥稳定土无侧限抗压强度试件养生期间,试件质量损失应符合()的规定,
按投资作用不同,工程建设项目可分为生产性建设项目和非生产性建设项目两大类。下列项目中属于非生产性建设项目的是()。
在设备更换不改变生产能力且新旧设备未来使用年限不同的情况下,固定资产更新决策应选择的方法是()。2015(卷Ⅰ)、(卷Ⅱ)
有些学生虽然知道道德规范,也愿意遵守,但却受个人的欲望支配不能抗拒诱惑因素,结果做出违反道德规范的事,其主要原因是这些学生()。
无民事行为能力人、限制民事行为能力人造成他人损害的,由监护人承担民事责任。这种民事责任属于
WhydoreadersofNewScientistcontinuetogetsteamedupaboutrace?Afterall,itcanbeusedasaninnocuoustechnicalterm
最新回复
(
0
)