c和c++的轉換-1

用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 ;
}
 

這樣就很簡單直接了。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章