對字串進行倒序排列,分為堆 棧兩種形式

2021-10-24 21:48:41 字數 2060 閱讀 4779

上面的dest_src進行了強制型別轉換,下面的free也需要強制型別轉換一下,不然系統以為程式釋放了不該釋放的記憶體所以就報錯嘍。..

....

對程式不理解之處

一、在strcpy()這裡

.二、free()這裡出錯了

.strcpy()函式是c語言中的乙個複製字串的庫函式,不會考慮接收複製資訊的陣列的大小,因此在使用堆區儲存的時候,給接收複製資訊的陣列分配相同大小或者更大的空間。

.char *strcpy(char *dst, const char *src);

#define _crt_secure_no_warnings 

//(只會在該檔案裡起作用)

#include

#include

#include

#define func_chioce 1

//定義了第一種方法

#if (func_chioce == 1)

void

change_ab

(char

*a,char

*b)#elif (func_chioce == 2)

void

change_ab

(char

*a,char

*b)//這裡另外乙個文章有詳細解釋

#elif(func_chioce == 3)

void

change_ab

(char

*a,char

*b)#endif

/* 字串反轉函式,返回字串,char型別指標 */

char

*str_reverse

(char

* src_str)

return dest_str;

//為什麼要設定dest_str, 指標以及返回ret指標的位置[3],由於目的指標dst已經在進行移動了,所以用輔助指標ret表明首指標;(忘記為什麼這樣解釋了,,,)

}/* 主函式 */

intmain()

char

*p =

str_reverse

(src_str)

;strcpy

(dest_str, p)

;printf

("after reverse: %s\n"

, dest_str)

;

.

直接 char *p = str_reverse(src_str); 這一步就可以了 這一步已經拿到結果存在棧記憶體中

.

#define _crt_secure_no_warnings 

//(只會在該檔案裡起作用)

#include

#include

#include

#define func_chioce 1

//定義了第一種方法

#if (func_chioce == 1)

void

change_ab

(char

*a,char

*b)#elif (func_chioce == 2)

void

change_ab

(char

*a,char

*b)#elif(func_chioce == 3)

void

change_ab

(char

*a,char

*b)#endif

/* 字串反轉函式 */

char

*str_reverse

(char

* src_str)

return src_str;

}/* 主函式 */

intmain()

字串倒序排列

str whoareyou 一,使用內建函式strrev 二,二分法,將字串按照首尾呼應的格式調換順序 012345678 9 0 1 012345678 9 1 1 012345678 9 2 1 len strlen str 不能使用count或sizeof mid floor len 2 二分...

字串倒序

題目描述 給定任意乙個字串序列,將該字串在原有的儲存空間內倒序。輸入輸入乙個字串,如 abcdefg123 輸出輸出倒序後的字串,如 321gfedcba 樣例輸入 abcdefg123 樣例輸出 321gfedcba 提示1.編寫乙個 main 函式實現該功能演算法。地區 南京研究所 public...

字串倒序

string 倒序,利用string是tochararray,在倒序輸出 private static void reversestring1 string str 利用string提供的substring 方法,利用遞迴的方法倒序字串 private static void reversestri...