怎样返回一个字符串类型?

weinikuaile 2009-12-09 01:43:10
#include<iostream>
#define n 50
using namespace std;
int strlength(char string[n])
{
int i=0;
while(string[i]!='\0')
i++;
return i;
}
char *assert(char string1[n])
{ int c,j;c=j=strlength(string1);int i=0;char *p;

char string2[n];
while(j>0&&i>=0)
{string2[i]=string1[j-1];
i++;
j--;
}
p=string2;
for(i=0;i<c;i++)
cout<<*p++;
cout<<"哈哈"<<endl;
return p;//想将此字符串string2返回,却发觉结果不对



}


int main()
{ char string[n],*q;int i,m;
cout<<"请输入一个字符串"<<endl;
gets(string);
m=strlength(string);
cout<<m;

q=assert(string);
for(i=0;i<m;i++)
cout<<*q++;
return 0;
}
...全文
409 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
bladesoft 2009-12-09
  • 打赏
  • 举报
回复
就返回一个首地址的指针,这样是最方便的,也不会出错
FollowYourHeart 2009-12-09
  • 打赏
  • 举报
回复
两个方法:
1.最简单:在char string2[n]; 前加 static变成static char string2[n];
2.动态内存:char string2[n]; 变成 char *string2 = (char*)malloc(n);
aozhi 2009-12-09
  • 打赏
  • 举报
回复
5楼的办法还是不错的。
static char string2[n];
lovesi3344 2009-12-09
  • 打赏
  • 举报
回复
楼主是韩寒??韩寒也上CSDN??韩寒也学C++??
dream251553905 2009-12-09
  • 打赏
  • 举报
回复
用指针指向要返回的字符串,然后反回指针就可以了!
小魔菇 2009-12-09
  • 打赏
  • 举报
回复
mark
菜鸟二号 2009-12-09
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 chou_qi 的回复:]
返回一个首地址就可以
[/Quote]
这个是挺方便的
丈剑走天涯 2009-12-09
  • 打赏
  • 举报
回复
返回一个首地址就可以
zcgzdhxm 2009-12-09
  • 打赏
  • 举报
回复
有点问题
zhengjiankang 2009-12-09
  • 打赏
  • 举报
回复
在assert函数中动态申请string2的内存
main函数里使用完string2之后动态释放string2的内存
罗耗子 2009-12-09
  • 打赏
  • 举报
回复
喜欢用静态变量
static char string2[n];  
WingForce 2009-12-09
  • 打赏
  • 举报
回复
其实还是有点办法的

typedef struct _assert_str
{
char content[512];
}assert_str;

assert_str get_str()
{
assert_str ret;
strcpy(ret.content, "teststr");
}

//...
assert_str str = get_str();
printf(str.content);



bd17kaka1106 2009-12-09
  • 打赏
  • 举报
回复
return p;//p是局部变量,调用结束后,p的内存就释放了,所以就会出错
vanchristin 2009-12-09
  • 打赏
  • 举报
回复
呃,老问题了似乎,string2是局部数据,调用结束后内存就释放了,所以返回的指针实际指向未知地址
不知道我的表述是否合适
mstlq 2009-12-09
  • 打赏
  • 举报
回复
没办法……
请用以下替代方案……
char *assert(char string1[n],char sting1[n])……
用这种形式声明……

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧