题目 1031: [编程入门]自定义函数之字符串反转

在主函数中输入一个字符串(不包含空格),写一个新函数将字符串按反序存放,并在主函数中输出反序后的字符串

gets()能把字符串写入数组里,

我只需要再写一个新数组,把array数组的最后一个元素赋值给新数组的第一个元素,把array的倒数第二个赋值给新数组的第二个……

这样一个一个赋值,万一阿华明天换一个字符串,我又要重新写了,让我好好思考一下。

我想到了!我可以用for循环实现赋值——

先用strlen()函数计算出array的长度,array数组最后一个元素的下标就是长度-1;

然后把array数组的最后一个元素,赋值给新数组的第一个元素;

接着array数组的下标减一,新数组的下标加一,这样就把array的倒数第二个赋值给新数组的第二个啦……

让新数组的下标一直增加到,与array数组最后一个元素的下标相等,就可以把array中的所有元素赋值给新数组了啊!

#include<stdio.h>
#include<string.h>            //strlen()函数在string头文件中,一定得先调用一下 
 
int main(void){
    char array[100],newarray[100];
    gets(array);
    //printf("%s",array);
    int num = strlen(array); //先计算出array数组长度 
    int i,j=num-1;         //数组下标是从0开始,所以最后一个元素的下标需要用长度-1 
     
    /*
    当新数组newarray元素下标,增加到和array长度相等时
    array中的所有元素都被反序存到newarray中了 
    就可以结束循环啦 
    */ 
     
    for(i=0;i<num;i++){
        newarray[i] = array[j];
        printf("%c",newarray[i]);
        j--;
    }
 
    return 0;
}

 

posted @ 2023-04-07 12:02  ha_1007  阅读(82)  评论(0)    收藏  举报