問題分析:
編寫乙個函式reverse_string(char *string)
實現:將函式字串中的字元反向排列。
要求:不能使用c函式庫中的字串操作函式。
程式分析:
要實現引數字串的反向排列:
1.找到字串陣列中的首元素和末元素的位址。
2.定義兩個指標變數left,right,和乙個中間變數實現首末值和中間值的交換。
3.呼叫reverse_string這個函式,將返回值設為事先保留字串的首位址,之後輸出反向排列後的字串。
注意:在實現值的交換時,盡量定義左右值進行交換,慎用變數的前置後置加加減減,這樣容易混淆,容易出錯,從而實現不了所要的功能。
**如下:
#include
#include
char * reverse_string(char *string)
assert(string);
char *ret = string; // 定義乙個char型指標ret儲存string
char *left = string; //定義乙個left指標存放待改變的左值的位址
char *right; //定義乙個right指標存放待改變的右值的位址
char temp; //定義乙個中間變數,供左右值的交換
while(*string != '\0')
string++; //使string指向『\0』
right = string - 1; //使right指向字元陣列中的最後乙個元素
while(left < right) //實現左右值的交換
字串反轉(C語言
功能 字串反轉 需要考慮當下標為0時是否跳出迴圈,所以此處演算法的核心在於length 0和 length 考慮最大下標為lentht 1 該演算法的缺點是 1,輸出陣列長度應該有輸入陣列確定 2,陣列最好為動態記憶體分配 3,最好封裝為函式,但是函式命名不能為strrev,該函式名為vs的內建函式...
C語言字串反轉函式
c語言中所謂的字串不過是字元陣列,後跟乙個0x00字元標識結尾,所以反轉起來很容易,只要乙個迴圈依次將第乙個字元和最後乙個字元交換,第二個字元和倒數第二個字元交換 如果最中間有兩個字元 即需要反轉的字串長度為偶數 那就交換,如果最中間有乙個字元 即需要反轉的字串長度為奇數 那就不需要碰它。還有就是最...
C語言字串反轉函式
c語言中所謂的字串不過是字元陣列,後跟乙個0x00字元標識結尾,所以反轉起來很容易,只要乙個迴圈依次將第乙個字元和最後乙個字元交換,第二個字元和倒數第二個字元交換 如果最中間有兩個字元 即需要反轉的字串長度為偶數 那就交換,如果最中間有乙個字元 即需要反轉的字串長度為奇數 那就不需要碰它。還有就是最...