字符串反向输出,递归,请为序号都分别是什么语句

一个将字符串反向的函数,用了指针。老师的作业,初学者的我不会写,只能求助大神们 revstr(char *s) { char *p=s,c; while(【1】) p++; [2]; if(s

1、*p

2、p--

3、*s=*p

4、*p

5、*p=c

完整代码如下:

void revstr(char *s)
{
	char *p =s,c;
	while (*p) p++;
	p--;
	if(s<p)
	{
		c = *s;
		*s = *p;
		*p='\0'; //递归之前,p的位置要置上结束符,否则再次进入函数时,p会一直找到原来的字符串结尾
		revstr(s+1);
		*p=c;  //这里才把正确的字符填进去
	}
}

 

题目没贴全?

供参考:

#include <stdio.h>
#include <string.h>

revstr(char *s)
{
    char *p=s,c;
    while(*p) p++;//【1】
    p--;          //【2】
    if(s<p)
    {
       c=*s;
       *s=*p;   //【3】
       *p='\0'; //【4】
       revstr(s+1);
       *p=c;    //【5】;
    }
}
int main()
{
    char s[80];
    gets(s);
    revstr(s);
    printf("%s",s);
    return 0;
}