1. 程式人生 > 其它 >只是交換陣列,不需要引數返回

只是交換陣列,不需要引數返回

http://lx.gongxuanwang.com/sszt/7.htm

陣列char arr[] = "a b c d e f g \0" 中,每一次都交換第一個元素和最後一個元素,再加上中間元素的交換函式。
如:第一次交換 "g reverse_string(char* arr) a \0"。湖北遴選注意:先不著急把a放入最後一個元素的地址中,令最後一個數組元素成‘\0’,a儲存到臨時變數tmp裡。如:"g reverse_string(char* arr) \0", tmp=a。(原因:逆序函式傳進去的是一個字串。若不這樣操作逆序函式再次呼叫的時候無法進行,因為此時中間剩餘元素不是一個字串)
實現遞迴都要有一個限制條件,若沒有限制條件則會出現死遞迴。當字串的長度為奇數時,中間只剩一個數組元素,並不需要交換,增加限制條件if(strlen(arr)>1),讓遞迴最後停下。

  1. 定義函式型別:這裡只是交換陣列,不需要引數返回,所以用void。
  2. 定義兩個指標:char* leftchar* right,http://lx.gongxuanwang.com/sszt/7.htm 分別指向陣列首元素地址和陣列最後一個元素的地址。
  3. 交換陣列元素。
  4. 下面我會湖北遴選分別用非遞迴遞迴的方法介紹本題。

    從main()函式入手

    1. 定義一個數組。
    2. 呼叫實現字串逆序的函式。——本題核心
    3. 列印交換後的陣列。