#include <stdio.h>
int swap(char *s,char *p)
{
int i = 0;
char temp;
if(*++p != '\0')
i = swap(s,p);
if((s+i) <= (--p))
{
temp = *(p);
*(p) = *(s+i);
*(s+i) = temp;
}
return ++i;
}
char *reverse(char *s)
{
char *p,*q;
q = p = s;
swap(q,p);
return s;
}
int main(void)
{
char s[] = "I want eat fish!";
printf("%s\n",reverse(s));
return 0;
}
int swap(char *s,char *p)
{
int i = 0;
char temp;
if(*++p != '\0')
i = swap(s,p);
if((s+i) <= (--p))
{
temp = *(p);
*(p) = *(s+i);
*(s+i) = temp;
}
return ++i;
}
char *reverse(char *s)
{
char *p,*q;
q = p = s;
swap(q,p);
return s;
}
int main(void)
{
char s[] = "I want eat fish!";
printf("%s\n",reverse(s));
return 0;
}
本文介绍了一种使用C语言实现字符串反转的方法。通过递归调用swap函数来交换字符串中的字符,最终达到整个字符串反转的目的。该程序展示了如何定义递归函数以及如何在主函数中调用这些函数来完成字符串的反转。
1429

被折叠的 条评论
为什么被折叠?



