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]);
}
}