在C字符串中查找错误

a3d*_*fcv 2 c++ string

今天我有一个inverview,并被要求编写两个字符串连接的功能.但是在我结束之后,我听说,通常代码没问题,但我在那里做了一点错误.在家检查,但一切正常.有什么问题?

char * strconcat (char *S1, char *S2){
    char *S3 = new char [strlen(S1) + strlen(S2) +1];
    strcpy(S3, S1);
    strcat(S3, S2);
    return S3;   
} 
Run Code Online (Sandbox Code Playgroud)

unw*_*ind 5

嗯......我想,这完全取决于要求和质量预期.

一些东西:

  • 输入指针应该是const.
  • 你没有处理new[]失败(虽然会抛出异常,这可能没什么问题).
  • 为了提高性能,最好不要执行strcpy()/ strcat()序列,因为您花费的时间多于必要的步行字符串.
  • 在风格上,它有点"关闭".它读起来很像C代码,但使用C++结构.