一个将字符串反向的函数,用了指针。老师的作业,初学者的我不会写,只能求助大神们 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;
}