大家对这个拼接字符串的函数有什么看法

ngtygytmyf 2015-09-16 08:22:24
C++一个拼接email地址的函数:
string compose(const string& name, const string& domain)
{
return name+'@'+domain;
}

这样用:
string addr = compose("gre","research.att.com");



而C语言版本需要显式地字符复制和显式地内存管理:
char* compose(const char* name, const char* domain)
{
char* res = malloc(strlen(name)+strlen(domain)+2); // space for strings, '@', and 0
char* p = strcpy(res,name);
p += strlen(name);
*p = '@';
strcpy(p+1,domain);
return res;
}


这样用:
char* addr = compose("gre","research.att.com");
// …
free(addr); // release memory when done



===以上是文章的转载===
然后原作者问C语言版本的函数写对了吗?确定?为什么?
我想知道大家的看法
...全文
159 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
paschen 2015-09-17
  • 打赏
  • 举报
回复
用char比较麻烦,string是类类型,所以很多字符串操作都在内部完成了,而且不用考虑字符数组大小的问题,不过有时可能会比直接用字符数组操作效率低一点,但完全可以忽略
赵4老师 2015-09-17
  • 打赏
  • 举报
回复
做个可能不太恰当的比喻: 人想让狗帮忙逮只兔子,可是人说话狗听不懂,于是人发明了一种介乎人言和狗语之间的语言,即口令。 人想让电脑帮忙做计算,可是人话电脑听不懂,于是人发明了一种介乎人言和汇编机器码之间的语言,即C语言。 人对狗的口令得让人容易学、也得让狗容易懂。 C语言同样得让人容易学、也得让电脑容易懂。 相比之下C++、Java就是人学得费劲、电脑也经常闹不懂。

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧