#include <stdio.h>
#include <string.h>
void swap(char *a,char *b)
{
char c;
c=*a;
*a=*b;
*b=c;
}
void reverse(char *s,char *t){
if(s<t){
swap(*s,*t);
reverse(++s,--t);
}
}
void main(){
char s[100],*p;
int len;
printf("Please enter a string:\n");
gets(s);
len=strlen(s);
p=&s[len];
reverse(s,p);
printf("Reverse the string we will get:\n%s\n",s);
}
这里哪出错了啊·?
C语言中的问题
答案:2 悬赏:80 手机版
解决时间 2021-04-16 02:23
- 提问者网友:了了无期
- 2021-04-15 17:28
最佳答案
- 五星知识达人网友:一秋
- 2021-04-15 17:46
#include <stdio.h>
#include <string.h>
void swap(char *a,char *b)
{
char c;
c=*a;
*a=*b;
*b=c;
}
void reverse(char *s,char *t)
{
if(s<t){
swap(s,t);
//s 和t 本来就是地址. 而且swap参数也是地址. 所以不用解引用也不用取地址.直接过去就行了.
reverse(++s,--t);
}
}
void main()
{
char s[100],*p;
int len;
printf("Please enter a string:\n");
gets(s);
len=strlen(s);
p=&s[len-1]; //s[len]的内容是字符串结束符. 所以要指向len-1的那个元素地址.
reverse(s,p);
printf("Reverse the string we will get: %s\n",s);
}
全部回答
- 1楼网友:人類模型
- 2021-04-15 17:53
swap这个函数的形参是指针 *s不是指针而是s 那个存储单元的值
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯