递归与非递归实现strlen

1.非递归实现strlen
2.递归实现strlen
3.递归反向输出一个字符串

/*
递归与非递归实现strlen
反向输出一个字符串
*/
#include<stdio.h>
#include<windows.h>
#pragma warning (disable:4996)

int Strlen(char b[]);//求字字符串长度
int Strlen_DG(char* b);//递归 求字符串长度
void Reverse(char a[], int i, int n);//递归反向输出字符串
int main()
{
    
    
	char a[20];
	gets(a);
	int len1 = Strlen(a);
	int len2 = Strlen_DG(a);
	printf("FDG-%d\n", len1);
	printf("DG-%d\n", len2);
	printf("反向输出字符串:\n");
	Reverse(a, 0, strlen(a));
	system("pause");
	return 0;
}

int Strlen(char b[])//求字字符串长度
{
    
    
	int i = 0;
	while (b[i] != '\0')
	{
    
    
		i++;
	}
	return i;
}
int Strlen_DG(char* b)//递归 求字符串长度
{
    
    
	if (*b != '\0')
		return 1 + Strlen_DG(b + 1);
	else
		return 0;
}
void Reverse(char b[],int i, int n)//递归反向输出字符串
{
    
    
	if (i < n)
	{
    
    
		Reverse(b, i + 1, n);
		printf("%c", b[i]);
	}
}

猜你喜欢

转载自blog.csdn.net/Mmonster23/article/details/103145961
今日推荐