新微赢技术网
标题:
请教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
#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