遞迴實現逆轉字串
阿新 • • 發佈:2019-01-14
遞迴實現逆轉字串
思路分析:運用指標的方法傳參,設定頭尾指標,交換頭尾,將尾點暫存為‘\0’,再次呼叫逆轉函式,引數設定為指標指向下一個字元,以此類推,當頭指標內為‘\0’時,不再呼叫,返回引數,依次恢復尾點。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<string.h>
int mystrlen(char*str){//計算字串長度函式
int count = 0;
while ( *str++){
count++;
}return count;
}
void reverse_string(char*str){
/*char* start;
char* end;
char* temp;*/
if (*str){
char* start = str;
char* end = str + mystrlen(str) - 1;
char temp = *start;
*start = *end;//首尾交換
*end = '\0';//尾點暫存
reverse_string(start + 1);//逆轉字串
*end = temp;//恢復尾點
}
//
}
int main(){
char str[1024];
printf("請輸入一個字串\n");
scanf("%s", str);
reverse_string(str);
printf("%s\n", str);
system("pause");
return 0;
}
列印結果: