使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。函数convert(cha*des,char*str)实现的功能是: (1)如果字符串最后面有空格,则全部删除; (2)转换后的数据放到des,并且指针作为返

admin2015-07-20  31

问题 使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。函数convert(cha*des,char*str)实现的功能是:
(1)如果字符串最后面有空格,则全部删除;
(2)转换后的数据放到des,并且指针作为返回值返回。
    注意:不能修改程序的其他部分,只能补充convert()函数。
  #include
  #inciude
  #define NAXLEN 1024
  char*  convert.(char*des,char*
  sir)
  {
  }
  void main()
  {
    char dest;[NAXI,EN];
    char*string=“abc def  ”;
    cout;  <<  string  <<“<一一”  <<
  endl;
    cout<    <<“(—一”<    return;
    }

选项

答案int length=0; inti; for(1ength=0;str[1ength] !=NULL, length++), //求数组长度 length—-; //下标从0一len一1,下 标减1表示最后一个字符的下标值 for(i=1ength,i>=0 ; i一一) { if(str[i]!=--) //判断结 尾是否有空格,从后往前判断直到不是不是 空格了跳出循环 break ; } for(1ength=0;length<=i;length++) { des[1ength] =str[length]; //从前面开始,逐个将str中的字符拷 贝到des数组中,不含最后面的空格 } des[1ength]=NULL; //最后一个字符为NULL return des;

解析 (1)利用循环将字符串str的长度求出,然后从字符串的尾部开始检索,用循环从字符串的最后一个字符往前面逐个检查,如果该字符不是空格则退出循环,这个时候就找到了最后一个非空格字符所在的下标位置,然后从下标0开始到该位置,逐个将s仃里面字符拷贝到des中。
(2)程序当中使用了3次循环:计算长度、寻找最后一个非空格字符和拷贝三个过程。
转载请注明原文地址:https://kaotiyun.com/show/I3Np777K
0

最新回复(0)