我想将一个以 null 结尾的字符串复制到另一个位置,并想知道复制的字符串有多长。效率是最重要的。有 strcpy
函数可以实现这一点,但它不会返回实际复制了多少个字符。
当然,我可以通过简单地在之后调用 strlen
来检测复制的字符串的长度来发现这一点,但这将意味着再次遍历字符串中的字符,虽然 strcpy
必须跟踪它复制了多少个字符。出于性能原因,我不想进行这样的二次遍历。
我知道用一个简单的逐个字符的拷贝编写自己的 strcpy
很容易,但我认为标准库可能会应用魔法使 strcpy
更快而不是简单的逐字符实现。
那么,strcpy
并接收复制的字符数而无需再次遍历字符串的最佳方法是什么?
最佳答案
多系统支持stpcpy
它返回指向目的地末尾的指针。您可以减去原始目标指针,这样您就可以获得长度。
关于c++ - 如何 strcpy 并返回复制的字符数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34402715/