方法一:求出字符串长度,反向遍历即可
#include <stdio.h>
#include <string.h>
#define MAXSIZE 1024
void ReversePrint(char *s)
{
int len = strlen(s);
for (int i = len - 1;i >= 0;--i)
printf("%c", s[i]);
}
int main()
{
char str[MAXSIZE];
gets(str);
ReversePrint(str);
printf("\n");
return 0;
}
方法二:不求字符串长度,先遍历到末尾,再遍历回来
#include <stdio.h>
#include <string.h>
#define MAXSIZE 1024
void ReversePrint(char *s)
{
char *p = s;
while (*p)
++p;
--p;
while (p >= s)
{
printf("%c", *p);
--p;
}
}
int main()
{
char str[MAXSIZE];
gets(str);
ReversePrint(str);
printf("\n");
return 0;
}
方法三:递归
#include <stdio.h>
#include <string.h>
#define MAXSIZE 1024
void ReversePrint(const char *s)
{
if (*(s + 1) != '\0')
ReversePrint(s + 1);
printf("%c", *s);
}
int main()
{
char str[MAXSIZE];
gets(str);
ReversePrint(str);
printf("\n");
return 0;
}