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