设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 400|回复: 4
打印 上一主题 下一主题

请教char *的问题

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-3 02:11:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教char *的问题
我想将两char *的值相加并赋给char *返回值
char * rxg(char * a,char *b)
{
size_t n=strlen(a)+strlen(b)+1;
char * c=new char[n];
strcpy_s(c,n,a);
strcat_s(c,n,b);
return c;
}
这样写会产生一个new内存空间,返回后没有办法delete c这个空间
有没有好的方法,将两char *类型的值相加并返回给char *类型
谢谢:)
2#
发表于 2009-11-3 02:11:21 | 只看该作者
try it:
#include <iostream>
#include <string>
using namespace std;
char * rxg(char * a,char *b)
{
size_t n=strlen(a)+strlen(b)+1;
char * c=new char[n];
strcpy(c,a);
strcat(c,b);
return c;
}
int main()
{
char a[] = "love ";
char b[] = "C++!";
char * c = a;
char * d = b;
char * e = rxg(c,d);
cout<<e<<endl;
delete[]e;
return 0;
}
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-3 02:11:22 | 只看该作者
谢谢:)
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-3 02:11:23 | 只看该作者

  1. #include <iostream>#include <cstdlib>#include <cstring>using namespace std;char * rxg(char * c, int cSize, const char * a, const char * b){  if(a != NULL && b != NULL)  {    strncpy(c, a, cSize-1);                c[cSize-1] = '\0';    unsigned int cRemaining = (cSize - strlen(c)) - 1;                strncat(c, b, cRemaining);          return c;  }        return NULL;}int main(){  char a[] = "love ";  char b[] = "C++!";  char c[10];          int csize = sizeof(c);                rxg(c, csize, a, b);        cout<<c<<endl;  system("pause");          return 0;}
复制代码
回复 支持 反对

使用道具 举报

5#
发表于 2009-11-3 02:11:24 | 只看该作者
谢谢:)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 04:33 , Processed in 0.106932 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表