首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++中自定义字符串连接函数,当空间不足时怎么分配空间

2013-10-29 
C++中自定义字符串连接函数,当空间不足时如何分配空间新手上路,多多照顾。谢谢各位void StrContact(char *

C++中自定义字符串连接函数,当空间不足时如何分配空间
新手上路,多多照顾。谢谢各位

void StrContact(char * str1,char * str2)
//字符串连接
{
while(*str1!='\0')*str1++;
while(*str2!='\0')*str1++=*str2++;
*str1='\0';
}
如果传过来的str1【】空间足够大,那么这样就应该可以了吧。
但如果说str1[]空间放不下str2[]了呢,此时怎么处理是好??

//主函数
int main()
{
char str1[50]="cease to struggle and you cease to live.",str2[]="forever~~";
         StrContact(str1,str2);
        cout << endl;
} c++ 字符串 空间分配
[解决办法]
int l1=strlen(s1);
int l2=strlen(s2);
char* p=new char[l1+l2+1);
strcpy(p,s1);
strcpy(p+l1,s2);
return p;
[解决办法]
还函数外面传进来的,确保得它的长度是足够的,
如果不够,应该在调用函数之前分配足够的空间!
[解决办法]
如果传过来的str1【】空间足够大,那么这样就应该可以了吧。
但如果说str1[]空间放不下str2[]了呢,此时怎么处理是好??
R:这个str1的空间应该由调用StrContact的用户来保证
[解决办法]

引用:
如果传过来的str1【】空间足够大,那么这样就应该可以了吧。
但如果说str1[]空间放不下str2[]了呢,此时怎么处理是好??
R:这个str1的空间应该由调用StrContact的用户来保证

+1
需要动态分配memory的话,一般会直接用std::string

std::string a("whatever");
std::string b(" however");
a += b;
std::cout<<a<<std::endl; //whatever however

[解决办法]
http://baike.baidu.com/link?url=hjaVhUa4wylTSo4oaFkby5H9MpjIOT-GxtP2jRGzSsVRTGor7377IyeRcqJYJQ7EVHXyCjRUpV-L3lFY33dyna

热点排行