新微赢技术网

标题: 请教char *的问题 [打印本页]

作者: 释放压力    时间: 2009-11-3 02:11
标题: 请教char *的问题
请教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 *类型
谢谢:)
作者: 云-飘天涯    时间: 2009-11-3 02:11
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;
}
作者: 賤xs騷    时间: 2009-11-3 02:11
谢谢:)
作者: 兰桂枋    时间: 2009-11-3 02:11

  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;}
复制代码

作者: liu    时间: 2009-11-3 02:11
谢谢:)




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2