用c連接字符串還是比較麻煩的。因爲string並非c的內置類型。我們看看麻煩的情況。以連接字符串爲例:
c的代碼是這樣的:
char * strcat_cstyle() { // c++ style char* a ="hello "; char* b ="world by c"; int len = strlen(a)+strlen(b)+1; char*c =(char*)malloc(len); memset(c,0,len); strcat(c,a); strcat(c,b); return c; }
你需要
- 自己計算新字符串的長度
- 自己分配並轉型
- 自己清空內存區
- 然後連接
- 別忘了,用完後記得free
不這樣會如何?你可以試試吧len改小,看看c遇到這樣的問題的反應會如何暴烈。
還好,在c++內雖然沒有string類型,但是在庫內提供了一個string的類,於是:
string strcat_cppstyle()
{
// c++ style
string a ="hello";
string b ="world by c++";
return a+b ;
}
這樣就很簡單直接了。