首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用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
35
问题
使用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://jikaoti.com/ti/cBE0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
写出下列程序的运行结果。#include<iostream.h>classX{ public:virtualvoiddisp(){cout<<”X类的disp函数<<”end1;}};
要在屏幕上显示“Hello,world!”应执行语句cout<<【】。
已定义以下函数fun(int*p){return*p;}该函数的返回值是______。
语句ofstreamf("SALARY.DAT",ios::app|ios::binary);的功能是建立流对象f,试图打开文件SALARY.DAT并与之连接,并且()。
下列关于运算符重载的描述中,正确的是()。
下列函数原型声明中错误的是()。
下列程序的输出结果是______。#include<iostream.h>voidmain(){inta[]={1,2,3,4,5,6},*p,**q;p=a;q=&p;
在下面程序运行#include<iostream.h>intfunc(chars[]){intlength=0;while(*(s+length))length++;returnlength
以下各选项组中,均是C++语言关键字的组是
数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构进行的运算,以及
随机试题
材料一:“苏联共产党是一个拥有88年历史,1500万党员的大党,却在20世纪80年代末,在一纸禁令下,一夜之间被解散了,执政地位被剥夺,苏联社会主义不战而败。”材料二:“党的十六届四中全会通过的《决定》指出,党的执政地位不是与生俱来的,也不是一劳永逸的。
下列结论正确的是().
冠心病猝死的最主要原因是()。
症见呕吐酸腐,脘腹胀满,嗳气厌食,大便或溏或结,舌苔厚腻,脉滑实,治法为
下列结论中,正确的为()。
“征免性质”栏应填()。
请你用三分钟的时间简要介绍一下你自己的基本情况,并说说你主要的优缺点,有哪些特长和爱好?【追问】(1)喜欢书、报、刊吗?(2)喜欢读哪类书籍?(3)经常看的刊物有哪几种?
《我国》刑法第133条规定:“违反交通运输管理法规,因而发生重大事故,致人重伤、死亡或者使公私财产遭受重大损失的,处三年以下有期徒刑或者拘役;交通运输肇事后逃逸或者有其他特别恶劣情节的,处三年以上七年以下有期徒刑;因逃逸致人死亡的,处七年以上有期徒刑。”
A、It’smypleasure.B、It’sheavy.C、Yes,itis.D、That’sgreat.A这是请求对方帮助自己,恰当的回答应是A,“乐意之至”。
CybercrimewhichistheillegalactivitycommittedontheInternetisthefastestgrowingcriminalactivityintheworldandis
最新回复
(
0
)