我今天有一個inverview,並被要求編寫兩個字符串連接的函數。但是在完成之後,我聽說,通常代碼是可以的,但是我在那裏做了一些小錯誤。在家裏檢查過,但一切正常。有什麼問題?在C字符串中找到錯誤
char * strconcat (char *S1, char *S2){
char *S3 = new char [strlen(S1) + strlen(S2) +1];
strcpy(S3, S1);
strcat(S3, S2);
return S3;
}
像那樣使用'new'既不是慣用的C也不是C++。 – Pubby
這是C和C++的奇怪混合體。你給了什麼具體的指導方針?如果我被問到這個問題,作爲一個C++問題,我會回答:'std :: string concat(const std :: string&s1,const std :: string&s2){return s1 + s2; ''你的代碼很快,很髒,而且「大部分時間可能都足夠了」。這不是我想要有人試圖告訴我他知道如何編寫代碼的方式。 –
也許是因爲你沒有檢查空指針? – Pubby