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;
}
调试没错,就是没有输出 展开
#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;
}
调试没错,就是没有输出 展开
3个回答
展开全部
char *a=str;
char *b=str+strlen(str);
这两句的语法错了,重复声明了两个指针的类型,str的指针顺序你给改过来了,你是想通过这个顺序改变字符串的输出顺序,但是a,b在这里是局部变量,没有改变str的顺序,甚至最后str都没有输出结果,建议把a,b改为全局变量后再继续你的思路做
char *b=str+strlen(str);
这两句的语法错了,重复声明了两个指针的类型,str的指针顺序你给改过来了,你是想通过这个顺序改变字符串的输出顺序,但是a,b在这里是局部变量,没有改变str的顺序,甚至最后str都没有输出结果,建议把a,b改为全局变量后再继续你的思路做
追问
我这个程序没有输出怎么回事??
追答
调用方法的时候需要返回值,并且接收才可以,这些这段代码里都没有,所以输出的是空
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
这句错了,应该是
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
展开全部
基础
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询