【正确答案】正确答案:int length=0; int i; for(length=0;str[length] !=NUL L; length++); //求数组长度 length--;//下标从0~len-1,下标减l表示最后一个字符的下标值 for(i=length;i>=0;i--) { if(str[i]!=' ') //判断结尾是否有空格,从后往前判断直到不是不是空格了跳出循环 break; } for(length =0 ; length<=i;length++) { des[length]=str[length]; //从前面开始,逐个将str中的字符拷贝到des数组中,不含最后面的空格 } des[length]=NULL; //最后一字符为NULL return des;
【答案解析】解析:(1)利用循环将字符串str的长度求出,然后从字符串的尾部开始检索,用循环从字符串的最后一个字符往前面逐个检查,如果该字符不是空格则退出循环,这个时候就找到了最后一个非空格字符所在的下标位置,然后从下标0开始到该位置,逐个将str里面字符拷贝到des中。 (2)程序当中使用了3次循环:计算长度、寻找最后一个非空格字符和拷贝三个过程。