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的用户来保证
[解决办法]
std::string a("whatever");
std::string b(" however");
a += b;
std::cout<<a<<std::endl; //whatever however