如何在函数中返回两个字符串?

htys3 2004-11-05 04:32:49
定义函数时怎么写?内容如下
void test(字符串1,字符串2)
{
字符串1=字符串3;
字符串2=字符串3;
}
调用时要怎么写呢?
...全文
178 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
koalapheonix 2004-11-10
  • 打赏
  • 举报
回复
返回多个参数有三个方法
1、用引用型
2 用数组
4 用指针

还要我的解释吗
questionboy 2004-11-05
  • 打赏
  • 举报
回复
呵呵,不知道是不是你要的,我在函數內部分配內存,返回給你,有些東西是自己的編程習慣,你可以自行取捨,千萬接的用完以後刪除
char* ch1=NULL;
char* ch2=NULL;
void getstring( char*& p1, char*& p2 )
{
char ch3[MAX_LEN];

assert( !p1 );
assert( !p2 );
p1 = new char[strlen(ch3)+1];
memset( p1, 0, strlen(ch3)+1 );
p2 = new char[strlen(ch3)+1];
memset( p2, 0, strlen(ch3)+1 );
strcpy( p1, ch3, strlen(ch3) );
strcpy( p2, ch3, strlen(ch3) );
}

用完以後記的調用
delete[] ch1;
delete[] ch2;
langzi8818 2004-11-05
  • 打赏
  • 举报
回复

楼上的好象不行哦
要传指针的指针才行的吧

void test(char ** c1, char ** c2)
{
//...
strcpy(*c1, c3);
strcpy(*c2, c3);
//...
}

调用:
char a[], b[];
test(&a, &b);


数组就是传递的地址`
htys3 2004-11-05
  • 打赏
  • 举报
回复
我并不晓得a,b究竟有多大
在调用的时候想定义成char *a;
char *b;
前面要怎么改呢?谢谢
铖邑 2004-11-05
  • 打赏
  • 举报
回复
carylin(别信我,我在说谎) ( ) 提供的方法可以,使用char *需要防止内存越界
geland 2004-11-05
  • 打赏
  • 举报
回复
楼上的好象不行哦
要传指针的指针才行的吧

void test(char ** c1, char ** c2)
{
//...
strcpy(*c1, c3);
strcpy(*c2, c3);
//...
}

调用:
char a[], b[];
test(&a, &b);
yingpf 2004-11-05
  • 打赏
  • 举报
回复
向函数中的传递引用或指针参数都可以啊
carylin 2004-11-05
  • 打赏
  • 举报
回复
void test(char * c1, char *c2)
{
//...
strcpy(c1, c3);
strcpy(c2, c3);
//...
}

调用:
char a[], b[];
test(a, b);
htys3 2004-11-05
  • 打赏
  • 举报
回复
不用string ,只用char怎么办呢?
xuzheng318 2004-11-05
  • 打赏
  • 举报
回复
对头!
铖邑 2004-11-05
  • 打赏
  • 举报
回复
void test(string &str1, string &str2)
{
str1=str3;
str2=str3;
}

调用:
string s1, s2;
test(s1, s2);

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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