C++问题求解,利用指针,编写一个函数将字符串反序在主函数中调用该函数将用户输入的一个字符串反序输出

下面哪里错了#include<iostream>#include<string.h>usingnamespacestd;voidfun(char*str){char*a,... 下面哪里错了

#include<iostream>
#include<string.h>
using namespace std;

void fun(char *str)
{
char *a,*b,c;
char *a=str;
char *b=str+strlen(str);
for(;a<=b;a++,b--)
{
c=*a;
*a=*b;
*b=c;
}
}

int main()
{
char str[100];
cin>>str;
fun(str);
cout<<str<<endl;
return 0;
}
调试没错,就是没有输出
展开
 我来答
百度网友405afdc
2014-03-19
知道答主
回答量:26
采纳率:0%
帮助的人:14万
展开全部
char *a=str;
char *b=str+strlen(str);
这两句的语法错了,重复声明了两个指针的类型,str的指针顺序你给改过来了,你是想通过这个顺序改变字符串的输出顺序,但是a,b在这里是局部变量,没有改变str的顺序,甚至最后str都没有输出结果,建议把a,b改为全局变量后再继续你的思路做
追问
我这个程序没有输出怎么回事??
追答
调用方法的时候需要返回值,并且接收才可以,这些这段代码里都没有,所以输出的是空
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6cbe704
2014-03-18 · TA获得超过2103个赞
知道大有可为答主
回答量:1120
采纳率:0%
帮助的人:659万
展开全部
char *b=str+strlen(str);

这句错了,应该是
char *b=str+strlen(str)-1;

str+strlen(str);指向的是字符串最后一个字符的下一个位置,也就是'\0'的位置
例如字符串str = "abc",strlen(str)=3

'a' 'b' 'c' '\0'
str +1 +2 +3
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-18
展开全部
基础
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式