问答题
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。函数convert(char*des,char*str)实现的功能是,如果字符串str里面有空格或者不可打印字符,则全部去掉,将转化后的字符串放在字符串des里,然后返回该字符串。注意:不能修改程序的其他部分,只能补充convert0函数。#include<iostream.h>#include<ctype.h>#define MAXLEN1024char*convert(char*des,char*str){}void main(){char deSt[MAXLEN];char*str="Ab cDeF hJ K";cout<<convert(dest,str)<<endl;return;}
【正确答案】正确答案:int j=0; for(int i=0;str[i]!=NULL;i++) { if(str[i]!=' '&&isprint(str[i]))//判断是否是可打印的而且非空格字符 { des[j++]=str[i];//添加 } } des[j]=NULL;//最后一个字符为空 return des;
【答案解析】解析:(1)由审题分析可知,可利用循环来逐个检索str中的字符,循环变量i从0开始,直到str数组的结束,即str[i]==0为循环结束条件。 (2)在循环中用if语句判断该字符是否是空格或者不可打印字符:if(str[i]!=' '&&isprint(str[i])),如果满足条件说明不是空格或者不是不可打印字符添加到des中,不满足则无须添加到des中。