问答题 使用VC6打开 下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。函数convert(char *des,char* str)实现的功能是,如果字符串str里面有空格或者不可打印字符,则全部去掉,将转化后的字符串放在字符串des里,然后返回该字符串。
注意:不能修改程序的其他部分,只能补充convert ()函数。
#include <iostream.h>
#include <ctype.h>
#define MAXLEN 1024
char* 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;
答案考生文件夹 [解析] 函数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中。