用指针方式,采用递归办法定义一个字符串的逆序输出的函数

C语言。(不需要实现字符串逆序,直接逆序输出即可,也不要使用第二个字符串),函数原型为:void prtstring(char *s)。
主函数不作要求。

第1个回答  推荐于2016-08-09
完善的
#include <stdio.h>

int main()
{ char c[80];
void prtstring(char *s);
printf("请输入字符串:\n");
gets(c);
printf("逆序输出:\n");
prtstring(c);
printf("\n");
return 0;
}

void prtstring(char *s)
{
if(*(s+1)!='\0')
prtstring(s+1);
putchar(*s);
}

不用递归函数如下
#include<stdio.h>
#include<string.h>
void main()
{
int a,i;
char c[50],*p;
printf("请输入字符串:\n");
gets(c);
a=strlen(c);
p=&c[a-1];
for(i=1;i<=a;i++)
printf("%c",*p--);
printf("\n");

}
第2个回答  2011-12-19
void prtstring(char *s){
int len=strlen(s),i=0;
for(;i<len+1;i++){
printf("%c",s[len-i]);
}
}
测试通过. 非常好简单.
哦要递归的啊...那 @shine1991 | 十七级 仁兄 写的就可以!
第3个回答  2011-12-18
#include <stdio.h>

int main()
{
void prtstring(char *s);
prtstring("hello, world");
return 0;
}

void prtstring(char *s)
{
if(*(s+1)!='\0')
prtstring(s+1);
putchar(*s);
}本回答被提问者和网友采纳
第4个回答  2011-12-18
已测试
#include<stdio.h>
#include<stdlib.h>
void prtstring(char *s);

void prtstring(char *s)
{
s=getchar();
if(s=='\n') return;
prtstring(&s);
printf("%c\n",s);
}
int main()
{
char s;
prtstring(&s);
system("pause");
return 0;
}
相似回答