1. 程式人生 > 其它 >[C語言]——遞迴與非遞迴實現字串逆序

[C語言]——遞迴與非遞迴實現字串逆序

技術標籤:c語言

問題描述:
編寫一個函式 reverse_string(char * string)
實現:將引數字串中的字元反向排列。
要求:不能使用C函式庫中的字串操作函式。

非遞迴實現:

#include "stdio.h" 
int my_strlen(char *n)//自定義函式實現strlen函式功能
{
	int count=0;
	while((*n)!='\0')//計算字串長度
	{
		count++;
		n++;
	}
	return count;
}

void reverse_string(char * string)
{
	char temp;
int left=0;int right=my_strlen(string)-1; if(left<=right) { temp=string[left]; string[left]=string[right]; string[right]=temp; left++; right--; } printf("%s",string); } int main() { char n[]="abcd"; reverse_string(n); return 0; }

遞迴實現:

#include "stdio.h"
void reverse_string(char * string) { if(*(string++)!='\0') { reverse_string(string); } printf("%c",*(string-1)); } int main() { char n[]="abcd"; reverse_string(n); return 0; }

執行結果:
在這裡插入圖片描述