哪种方式更快?这一点:
sprintf(&str[strlen(str)], "Something");或
strcat(str, "Something");性能上有什么不同吗?
发布于 2009-11-21 02:56:29
strcat会更快,因为sprintf必须首先扫描字符串以查找格式变量。
但真正的胜利是,每个人都知道strcat在做什么--连接字符串。使用sprintf进行连接并不是一种标准用法。这会引起人们的双重反感。
发布于 2009-11-21 02:56:50
如果要在两者之间进行选择,我会选择strcat;它肯定更具可读性,并且可以清楚地表明您的意图。它也可能比sprintf稍微快一点,但可能不会快太多。
但是,无论您选择哪种方法,都绝对应该使用snprintf或strncpy来保护缓冲区溢出。
您将这个问题标记为c和c++;如果您使用的是C++,那么使用std::string会好得多。
发布于 2009-11-21 02:57:08
如果存在差异,那么这种差异会根据编译器标志、代码运行时的计算机使用情况、库实现等因素而有所不同。
对于您的特定情况,请使用度量。
运行这两个代码片段几十亿次,并对它们进行计时。
我非常怀疑你会发现有什么显著的区别。
我更喜欢strcat():它清楚地表达了代码的含义。
https://stackoverflow.com/questions/1772536
复制相似问题