一、通过递归的方式,逆向打印
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void inverse(char *p)
{
if(p == NULL) //递归结束异常条件
return;
if(*p == '\0') //递归结束的条件
return;
inverse(p+1);
printf("%c", *p);
}
int main()
{
char buf[] = "abcdefg";
inverse(buf);
return 0;
}
二、递归和全局变量(把逆序的结果存入全局变量)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char dbuf[100];
void inverse(char *p)
{
if(p == NULL) //递归结束异常条件
return;
if(*p == '\0') //递归结束的条件
return;
inverse(p+1);
strncat(dbuf, p, sizeof(char));
}
int main()
{
char buf[] = "abcdefg";
memset(dbuf, 0, sizeof(dbuf));
inverse(buf);
pri