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

admin2020-05-14  29

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

选项

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

解析 函数convert(cha*des,char*str)实现的功能是将字符串最后面有空格删除,并将转换后的数据放到des,返回指针,可以将字符串最后空格前的所有所有字符拷贝到des中,关键是确定下标从那开始到最后都是空格。
    [解题思路]
    (1)利用循环将字符串str的长度求出,然后从字符串的尾部开始检索,用循环从字符串的最后一个字符往前面逐个检查,如果该字符不是空格则退出循环,这个时候就找到了最后一个非空格字符所在的下标位置,然后从下标0开始到该位置,逐个将str里面字符拷贝到des中。
    (2)程序当中使用了3次循环:计算长度、寻找最后一个非空格字符和拷贝三个过程。
转载请注明原文地址:https://jikaoti.com/ti/32A0FFFM
0

最新回复(0)